From: Jan Engelhardt <jengelh@inai.de>
Date: 2016-06-13 11:46:16.846841814 +0200

Unversioned libraries suck!

---
 source/CMakeLists.txt        |    3 +++
 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 +
 6 files changed, 8 insertions(+)

Index: SPIRV-Tools-2021.3/source/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/CMakeLists.txt
+++ SPIRV-Tools-2021.3/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 suse22)
 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 suse22)
 
   # 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 suse22)
   spirv_tools_default_target_options(${SPIRV_TOOLS})
   set(SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared)
 endif()
Index: SPIRV-Tools-2021.3/source/fuzz/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/fuzz/CMakeLists.txt
+++ SPIRV-Tools-2021.3/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 suse22)
 
   spvtools_default_compile_options(SPIRV-Tools-fuzz)
 
Index: SPIRV-Tools-2021.3/source/link/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/link/CMakeLists.txt
+++ SPIRV-Tools-2021.3/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 suse22)
 
 spvtools_default_compile_options(SPIRV-Tools-link)
 target_include_directories(SPIRV-Tools-link
Index: SPIRV-Tools-2021.3/source/lint/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/lint/CMakeLists.txt
+++ SPIRV-Tools-2021.3/source/lint/CMakeLists.txt
@@ -25,6 +25,7 @@ endif()
 
 add_library(SPIRV-Tools-lint ${SPIRV_TOOLS_LIBRARY_TYPE} ${SPIRV_TOOLS_LINT_SOURCES})
 
+set_target_properties(SPIRV-Tools-lint PROPERTIES SOVERSION suse22)
 spvtools_default_compile_options(SPIRV-Tools-lint)
 target_include_directories(SPIRV-Tools-lint
   PUBLIC
Index: SPIRV-Tools-2021.3/source/opt/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/opt/CMakeLists.txt
+++ SPIRV-Tools-2021.3/source/opt/CMakeLists.txt
@@ -235,6 +235,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 suse22)
 spvtools_default_compile_options(SPIRV-Tools-opt)
 target_include_directories(SPIRV-Tools-opt
   PUBLIC
Index: SPIRV-Tools-2021.3/source/reduce/CMakeLists.txt
===================================================================
--- SPIRV-Tools-2021.3.orig/source/reduce/CMakeLists.txt
+++ SPIRV-Tools-2021.3/source/reduce/CMakeLists.txt
@@ -92,6 +92,7 @@ target_include_directories(SPIRV-Tools-r
 	$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
   PRIVATE ${spirv-tools_BINARY_DIR}
 )
+set_target_properties(SPIRV-Tools-reduce PROPERTIES SOVERSION suse22)
 # The reducer reuses a lot of functionality from the SPIRV-Tools library.
 target_link_libraries(SPIRV-Tools-reduce
   PUBLIC ${SPIRV_TOOLS_FULL_VISIBILITY}