diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2022-11-24 00:02:31 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2022-11-24 00:02:31 +0200 |
commit | ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5 (patch) | |
tree | 9cbba38234d5875235f2cf9278b6bdcc2ce4598d | |
parent | liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy(). (diff) | |
download | xz-ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5.tar.xz |
CMake: Don't use symbol versioning with static library.
-rw-r--r-- | CMakeLists.txt | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d085bf9..143a2cbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -470,9 +470,13 @@ if(WIN32) # Disable __declspec(dllimport) when linking against static liblzma. target_compile_definitions(liblzma INTERFACE LZMA_API_STATIC) endif() -elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") +elseif(BUILD_SHARED_LIBS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") # GNU/Linux-specific symbol versioning for shared liblzma. - # Note that adding link options doesn't affect static builds. + # Note that adding link options doesn't affect static builds + # but HAVE_SYMBOL_VERSIONS_LINUX must not be used with static builds + # because it would put symbol versions into the static library which + # can cause problems. It's clearer if all symver related things are + # omitted when not building a shared library. target_compile_definitions(liblzma PRIVATE HAVE_SYMBOL_VERSIONS_LINUX) target_link_options(liblzma PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map" @@ -480,7 +484,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") set_target_properties(liblzma PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map" ) -elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") +elseif(BUILD_SHARED_LIBS AND CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") # Symbol versioning for shared liblzma for non-GNU/Linux. # FIXME? What about Solaris? target_link_options(liblzma PRIVATE |