Add SOVERSION support to cmake build
Closed this issue · 0 comments
cdluminate commented
I've created a debian package for gloo here: https://salsa.debian.org/lumin-guest/gloo
To meet Debian's requirement I patched gloo as follows
Purpose: Add SOVERSION to shared object
Forward:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 09c7ac4..42f96b2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,10 @@ set(GLOO_VERSION_MINOR 5)
set(GLOO_VERSION_PATCH 0)
set(GLOO_VERSION
"${GLOO_VERSION_MAJOR}.${GLOO_VERSION_MINOR}.${GLOO_VERSION_PATCH}")
+set(DEB_MAINT_VERSION
+ "${GLOO_VERSION_MAJOR}.${GLOO_VERSION_MINOR}.${GLOO_VERSION_PATCH}")
+set(DEB_MAINT_SOVERSION
+ "${GLOO_VERSION_MAJOR}.${GLOO_VERSION_MINOR}.${GLOO_VERSION_PATCH}")
# Gloo assumes 64-bit and doesn't run builds/tests for anything else.
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
diff --git a/gloo/CMakeLists.txt b/gloo/CMakeLists.txt
index 7327905..727d751 100644
--- a/gloo/CMakeLists.txt
+++ b/gloo/CMakeLists.txt
@@ -83,6 +83,12 @@ configure_file(config.h.in config.h)
add_library(gloo ${GLOO_STATIC_OR_SHARED} ${GLOO_SRCS})
add_library(gloo_builder ${GLOO_STATIC_OR_SHARED} ${GLOO_BUILDER_SRCS})
+set_target_properties(gloo PROPERTIES
+ VERSION ${DEB_MAINT_VERSION}
+ SOVERSION ${DEB_MAINT_SOVERSION})
+set_target_properties(gloo_builder PROPERTIES
+ VERSION ${DEB_MAINT_VERSION}
+ SOVERSION ${DEB_MAINT_SOVERSION})
target_link_libraries(gloo PRIVATE ${gloo_DEPENDENCY_LIBS})
target_link_libraries(gloo_builder PUBLIC gloo)
if(USE_CUDA)
https://salsa.debian.org/lumin-guest/gloo/blob/master/debian/patches/deb_soversion.patch
The variable names are not appropriate for a pull request, so I just paste the patch here.