summarylogtreecommitdiffstats
path: root/fix-cmake-for-setup-py-extensions.patch
blob: b1bfd9c5d0bb4e4081ee5c42703e7e19c0f26bbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- folly/folly/CMakeLists.orig	2025-07-15 19:00:08.771012329 -0400
+++ folly/folly/CMakeLists.txt	2025-07-15 19:04:09.252041622 -0400
@@ -70,9 +70,21 @@
   # Tell setup.py where to find includes and libfolly.so
   set(prop "$<TARGET_PROPERTY:folly_base,INCLUDE_DIRECTORIES>")
   set(incs "$<$<BOOL:${prop}>:-I$<JOIN:${prop},:>>")
-  set(glog_lib "${GLOG_LIBRARY}")
-  cmake_path(REMOVE_FILENAME glog_lib)
-  set(libs "-L${CMAKE_BINARY_DIR}:${glog_lib}")
+
+  set(libs "-L${CMAKE_BINARY_DIR}")
+  if(TARGET glog::glog)
+    # Modern glog with imported targets - get the library location
+    get_target_property(glog_location glog::glog IMPORTED_LOCATION)
+    if(glog_location)
+      cmake_path(REMOVE_FILENAME glog_location OUTPUT_VARIABLE glog_lib_dir)
+      set(libs "${libs}:${glog_lib_dir}")
+    endif()
+  elseif(GLOG_LIBRARY)
+    # Traditional FindModule approach fallback
+    set(glog_lib "${GLOG_LIBRARY}")
+    cmake_path(REMOVE_FILENAME glog_lib)
+    set(libs "${libs}:${glog_lib}")
+  endif()
 
   add_custom_target(folly_python_bindings ALL
     DEPENDS folly create_binding_symlink
@@ -112,6 +124,7 @@
   add_dependencies(folly_python_cpp folly_python_bindings create_post_binding_symlink)
   set_property(TARGET folly_python_cpp PROPERTY VERSION ${PACKAGE_VERSION})
   target_compile_definitions(folly_python_cpp PRIVATE BOOST_NO_AUTO_PTR)
+  target_compile_definitions(folly_python_cpp PRIVATE GLOG_USE_GLOG_EXPORT)
   target_include_directories(folly_python_cpp PRIVATE "${_cybld}")
   target_link_libraries(folly_python_cpp PUBLIC folly)
   apply_folly_compile_options_to_target(folly_python_cpp)