File: soname.patch

package info (click to toggle)
dune-common 2.10.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,812 kB
  • sloc: cpp: 52,256; python: 3,979; sh: 1,658; makefile: 17
file content (41 lines) | stat: -rw-r--r-- 1,578 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From 0217e8c079c05bdac25c0e7d985ff24e9ed6c5eb Mon Sep 17 00:00:00 2001
From: Markus Blatt <markus@dr-blatt.de>
Date: Fri, 9 Dec 2022 16:01:02 +0100
Subject: [PATCH 2/2] Always add an soversion to the library.

---
 cmake/modules/DuneAddLibrary.cmake | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--- a/cmake/modules/DuneAddLibrary.cmake
+++ b/cmake/modules/DuneAddLibrary.cmake
@@ -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")