[PATCH 2/2] Always add an soversion to the library.
authorMarkus Blatt <markus@dr-blatt.de>
Fri, 9 Dec 2022 15:01:02 +0000 (16:01 +0100)
committerMarkus Blatt <markus@dr-blatt.de>
Fri, 22 Nov 2024 14:28:16 +0000 (15:28 +0100)
Gbp-Pq: Name soname.patch

cmake/modules/DuneAddLibrary.cmake

index 744066bab66d24079478c6fe1ef5f3e79aea3283..3a235f24b9bd75ec4e606b96d5fc95eff2627c26 100644 (file)
@@ -159,7 +159,7 @@ function(dune_add_library_normal _name)
   cmake_parse_arguments(ARG
     "NO_EXPORT;NO_MODULE_LIBRARY;STATIC;SHARED;MODULE"
     "COMPILE_FLAGS;COMPILE_OPTIONS;OUTPUT_NAME;EXPORT_NAME;NAMESPACE"
-    "ADD_LIBS;LINK_LIBRARIES;SOURCES" ${ARGN})
+    "ADD_LIBS;LINK_LIBRARIES;SOURCES;SOVERSION" ${ARGN})
   list(APPEND ARG_SOURCES ${ARG_UNPARSED_ARGUMENTS})
   dune_expand_object_libraries(ARG_SOURCES ARG_ADD_LIBS ARG_COMPILE_FLAGS)
   list(APPEND ARG_LINK_LIBRARIES ${ARG_ADD_LIBS})
@@ -174,6 +174,12 @@ function(dune_add_library_normal _name)
     set(_type "MODULE")
   endif()
 
+  if(NOT ARG_SOVERSION)
+    # If no explicit version is given, we assume the ABI is not stable and
+    # changes with every release.
+    set(ARG_SOVERSION ${ProjectVersion})
+  endif()
+
   # Create the library target
   add_library(${_name} ${_type} ${ARG_SOURCES})
 
@@ -185,6 +191,7 @@ function(dune_add_library_normal _name)
 
   # Build library in ${PROJECT_BINARY_DIR}/lib
   set_target_properties(${_name} PROPERTIES
+    SOVERSION "${ARG_SOVERSION}"
     LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
     ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")