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