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
|
--- a/cmake/modules/DuneMacros.cmake
+++ b/cmake/modules/DuneMacros.cmake
@@ -1011,8 +1011,13 @@
# More docu can be found at the top of this file.
macro(dune_add_library basename)
include(CMakeParseArguments)
- cmake_parse_arguments(DUNE_LIB ";APPEND;NO_EXPORT;OBJECT" "COMPILE_FLAGS"
+ cmake_parse_arguments(DUNE_LIB ";APPEND;NO_EXPORT;OBJECT" "COMPILE_FLAGS;SOVERSION"
"ADD_LIBS;SOURCES" ${ARGN})
+ if(NOT DUNE_LIB_SOVERSION)
+ # If no explicit version is given, we assume the ABI is not stable and
+ # changes with every release.
+ set(DUNE_LIB_SOVERSION ${ProjectVersion})
+ endif()
if(DUNE_LIB_OBJECT)
if(DUNE_LIB_${basename}_SOURCES)
message(FATAL_ERROR "There is already a library with the name ${basename}, "
@@ -1055,6 +1060,7 @@
endif()
# Build library in ${PROJECT_BINARY_DIR}/lib
set_target_properties(${basename} PROPERTIES
+ SOVERSION ${DUNE_LIB_SOVERSION}
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
@@ -1081,6 +1087,7 @@
#create shared libs
add_library(${basename}-shared SHARED ${DUNE_LIB_SOURCES})
set_target_properties(${basename}-shared PROPERTIES
+ SOVERSION ${DUNE_LIB_SOVERSION}
OUTPUT_NAME ${basename}
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
# link with specified libraries.
|