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