Author: brane
Date: Sat Jun 14 12:53:38 2025
New Revision: 1926411

URL: http://svn.apache.org/viewvc?rev=1926411&view=rev
Log:
In the CMake build, treat the module definition/exported symbols file
equally on all platforms. This is equivalent to SCons.

* CMakeLists.txt
  (export_symbols_ldflag): Platform-specific link flag prefix that tells
   the linker about the exported symbols file.
  (SHARED_SOURCES): [SERF_WINDOWS] Do not add the .def file to the sources.
  (serf_shared): Add LINK_FLAGS to use the exported symbols file.

Modified:
    serf/trunk/CMakeLists.txt

Modified: serf/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1926411&r1=1926410&r2=1926411&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Sat Jun 14 12:53:38 2025
@@ -180,12 +180,15 @@ list(APPEND SOURCES
 if(SERF_WINDOWS)
   set(export_symbols_ext_ "def")
   set(export_symbols_gen_ SerfWindowsGenDef)
+  set(export_symbols_ldflag "${CMAKE_LINK_DEF_FILE_FLAG}")
 elseif(SERF_DARWIN)
   set(export_symbols_ext_ "exp")
   set(export_symbols_gen_ SerfMachGenExp)
+  set(export_symbols_ldflag "-Wl,-exported_symbols_list,")
 elseif(SERF_ELF_TARGET)
   set(export_symbols_ext_ "map")
   set(export_symbols_gen_ SerfElfGenMap)
+  set(export_symbols_ldflag "-Wl,--version-script,")
 endif()
 
 if(DEFINED export_symbols_gen_)
@@ -206,7 +209,7 @@ if(DEFINED export_symbols_gen_)
 endif()
 
 if(SERF_WINDOWS)
-  set(SHARED_SOURCES "serf.rc" "${SERF_EXPORT_SYMBOLS}")
+  set(SHARED_SOURCES "serf.rc")
 
   # Static OpenSSL, APR and APR-Util need additional libraries that are not
   # linked by default by CMake. These will be ignored by the linker if they're
@@ -402,13 +405,8 @@ if(NOT SKIP_SHARED)
                         SOVERSION ${SERF_SOVERSION})
   if(DEFINED SERF_EXPORT_SYMBOLS)
     add_dependencies(serf_shared serf_export_symbols)
-    if(SERF_DARWIN)
-      set_target_properties(serf_shared PROPERTIES
-        LINK_FLAGS "-Wl,-exported_symbols_list,${SERF_EXPORT_SYMBOLS}")
-    elseif(SERF_ELF_TARGET)
-      set_target_properties(serf_shared PROPERTIES
-        LINK_FLAGS "-Wl,--version-script,${SERF_EXPORT_SYMBOLS}")
-    endif()
+    set_target_properties(serf_shared PROPERTIES
+      LINK_FLAGS "${export_symbols_ldflag}${SERF_EXPORT_SYMBOLS}")
   endif()
   if(SERF_DARWIN AND NOT RELATIVE_RPATH)
     set_target_properties(serf_shared PROPERTIES


Reply via email to