From: Jan Engelhardt Date: 2016-06-13 11:46:16.846841814 +0200 Unversioned libraries suck! --- source/CMakeLists.txt | 3 +++ source/diff/CMakeLists.txt | 2 ++ source/fuzz/CMakeLists.txt | 1 + source/link/CMakeLists.txt | 1 + source/lint/CMakeLists.txt | 1 + source/opt/CMakeLists.txt | 1 + source/reduce/CMakeLists.txt | 1 + 7 files changed, 10 insertions(+) Index: SPIRV-Tools-2022.2/source/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/CMakeLists.txt @@ -377,6 +377,7 @@ endfunction() add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES}) spirv_tools_default_target_options(${SPIRV_TOOLS}-shared) set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden) +set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES SOVERSION suse25) target_compile_definitions(${SPIRV_TOOLS}-shared PRIVATE SPIRV_TOOLS_IMPLEMENTATION PUBLIC SPIRV_TOOLS_SHAREDLIB @@ -387,6 +388,7 @@ if(SPIRV_TOOLS_BUILD_STATIC) spirv_tools_default_target_options(${SPIRV_TOOLS}-static) # The static target does not have the '-static' suffix. set_target_properties(${SPIRV_TOOLS}-static PROPERTIES OUTPUT_NAME "${SPIRV_TOOLS}") + set_target_properties(${SPIRV_TOOLS}-static PROPERTIES SOVERSION suse25) # Create the "${SPIRV_TOOLS}" target as an alias to either "${SPIRV_TOOLS}-static" # or "${SPIRV_TOOLS}-shared" depending on the value of BUILD_SHARED_LIBS. @@ -399,6 +401,7 @@ if(SPIRV_TOOLS_BUILD_STATIC) set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-static ${SPIRV_TOOLS}-shared) else() add_library(${SPIRV_TOOLS} ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_SOURCES}) + set_target_properties(${SPIRV_TOOLS} PROPERTIES SOVERSION suse25) spirv_tools_default_target_options(${SPIRV_TOOLS}) set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared) endif() Index: SPIRV-Tools-2022.2/source/diff/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/diff/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/diff/CMakeLists.txt @@ -35,7 +35,9 @@ target_link_libraries(SPIRV-Tools-diff target_link_libraries(SPIRV-Tools-diff PUBLIC SPIRV-Tools-opt) + set_property(TARGET SPIRV-Tools-diff PROPERTY FOLDER "SPIRV-Tools libraries") +set_target_properties(SPIRV-Tools-diff PROPERTIES SOVERSION suse25) spvtools_check_symbol_exports(SPIRV-Tools-diff) if(ENABLE_SPIRV_TOOLS_INSTALL) Index: SPIRV-Tools-2022.2/source/fuzz/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/fuzz/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/fuzz/CMakeLists.txt @@ -439,6 +439,7 @@ if(SPIRV_BUILD_FUZZER) spvtools_pch(SPIRV_TOOLS_FUZZ_SOURCES pch_source_fuzz) add_library(SPIRV-Tools-fuzz ${SPIRV_TOOLS_FUZZ_SOURCES}) + set_target_properties(SPIRV-Tools-fuzz PROPERTIES SOVERSION suse25) spvtools_default_compile_options(SPIRV-Tools-fuzz) Index: SPIRV-Tools-2022.2/source/link/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/link/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/link/CMakeLists.txt @@ -14,6 +14,7 @@ add_library(SPIRV-Tools-link ${SPIRV_TOOLS_LIBRARY_TYPE} linker.cpp ) +set_target_properties(SPIRV-Tools-link PROPERTIES SOVERSION suse25) spvtools_default_compile_options(SPIRV-Tools-link) target_include_directories(SPIRV-Tools-link Index: SPIRV-Tools-2022.2/source/lint/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/lint/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/lint/CMakeLists.txt @@ -27,6 +27,7 @@ endif() add_library(SPIRV-Tools-lint ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_TOOLS_LINT_SOURCES}) +set_target_properties(SPIRV-Tools-lint PROPERTIES SOVERSION suse25) spvtools_default_compile_options(SPIRV-Tools-lint) target_include_directories(SPIRV-Tools-lint PUBLIC Index: SPIRV-Tools-2022.2/source/opt/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/opt/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/opt/CMakeLists.txt @@ -245,6 +245,7 @@ spvtools_pch(SPIRV_TOOLS_OPT_SOURCES pch add_library(SPIRV-Tools-opt ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_TOOLS_OPT_SOURCES}) +set_target_properties(SPIRV-Tools-opt PROPERTIES SOVERSION suse25) spvtools_default_compile_options(SPIRV-Tools-opt) target_include_directories(SPIRV-Tools-opt PUBLIC Index: SPIRV-Tools-2022.2/source/reduce/CMakeLists.txt =================================================================== --- SPIRV-Tools-2022.2.orig/source/reduce/CMakeLists.txt +++ SPIRV-Tools-2022.2/source/reduce/CMakeLists.txt @@ -92,6 +92,7 @@ target_include_directories(SPIRV-Tools-r $ PRIVATE ${spirv-tools_BINARY_DIR} ) +set_target_properties(SPIRV-Tools-reduce PROPERTIES SOVERSION suse25) # The reducer reuses a lot of functionality from the SPIRV-Tools library. target_link_libraries(SPIRV-Tools-reduce PUBLIC ${SPIRV_TOOLS_FULL_VISIBILITY}