cmake_parse_arguments(ARG
"NO_EXPORT;NO_MODULE_LIBRARY;STATIC;SHARED;MODULE"
"COMPILE_FLAGS;COMPILE_OPTIONS;OUTPUT_NAME;EXPORT_NAME"
- "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})
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})
# 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")