Blob Blame History Raw
From ca148bc597605a2f6ec06ac35d0825b5f12e03ac Mon Sep 17 00:00:00 2001
From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
Date: Wed, 19 Aug 2020 11:29:07 +0100
Subject: [PATCH 04/11] Set soversions for libs

---
 CMakeLists.txt               | 5 +++++
 src/nrniv/CMakeLists.txt     | 9 +++++----
 src/nrnpython/CMakeLists.txt | 8 ++++++--
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c32bbd278..114a756a1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -828,6 +828,11 @@ if(MINGW)
   install(PROGRAMS ${BASH_EXE} DESTINATION ${CMAKE_INSTALL_PREFIX}/mingw/usr/bin)
 endif()
 
+# set up libdir
+if(NOT DEFINED LIB_INSTALL_DIR)
+    set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
+endif()
+
 # =============================================================================
 # Installation steps for backward compatibility
 # =============================================================================
diff --git a/src/nrniv/CMakeLists.txt b/src/nrniv/CMakeLists.txt
index 37d4193dd..3bedd62c0 100644
--- a/src/nrniv/CMakeLists.txt
+++ b/src/nrniv/CMakeLists.txt
@@ -363,6 +363,7 @@ else()
   elseif(TERMCAP_FOUND)
     target_link_libraries(nrniv_lib ${TERMCAP_LIBRARIES})
   endif()
+  set_target_properties(nrniv_lib PROPERTIES SOVERSION 0.0.0)
 endif()
 
 if(NRN_ENABLE_MUSIC)
@@ -406,7 +407,7 @@ if(NRN_ENABLE_MPI)
         target_link_libraries(${libname}_lib nrniv_lib)
       endif()
       set_property(TARGET ${libname}_lib PROPERTY OUTPUT_NAME ${libname})
-      install(TARGETS ${libname}_lib DESTINATION ${NRN_INSTALL_SHARE_LIB_DIR})
+      install(TARGETS ${libname}_lib DESTINATION ${LIB_INSTALL_DIR})
     endforeach(val)
   else()
     target_link_libraries(nrniv_lib ${MPI_C_LIBRARIES})
@@ -485,9 +486,9 @@ endif()
 # expected when ctypes looks for dlls
 # ~~~
 install(TARGETS nrniv nocmodl modlunit DESTINATION bin)
-install(TARGETS nrniv_lib DESTINATION ${NRN_INSTALL_SHARE_LIB_DIR})
-if(LIBIVX11DYNAM_NAME)
-  install(FILES ${PROJECT_BINARY_DIR}/lib/${LIBIVX11DYNAM_NAME} DESTINATION lib)
+install(TARGETS nrniv_lib DESTINATION ${LIB_INSTALL_DIR})
+if (LIBIVX11DYNAM_NAME)
+    install(FILES ${PROJECT_BINARY_DIR}/lib/${LIBIVX11DYNAM_NAME} DESTINATION ${LIB_INSTALL_DIR})
 endif()
 
 # =============================================================================
diff --git a/src/nrnpython/CMakeLists.txt b/src/nrnpython/CMakeLists.txt
index 4f9a767d3..92aa1530a 100644
--- a/src/nrnpython/CMakeLists.txt
+++ b/src/nrnpython/CMakeLists.txt
@@ -87,7 +87,10 @@ endif()
 
 # rxdmath libraries (always build)
 add_library(rxdmath SHARED ${CMAKE_CURRENT_SOURCE_DIR}/rxdmath.cpp)
-install(TARGETS rxdmath DESTINATION ${NRN_INSTALL_SHARE_LIB_DIR})
+if(NOT NRN_WINDOWS_BUILD)
+    set_target_properties(rxdmath PROPERTIES SOVERSION 0.0.0)
+endif()
+install(TARGETS rxdmath DESTINATION ${LIB_INSTALL_DIR})
 
 # =============================================================================
 # nrnpython libraries (one lib per python)
@@ -130,11 +133,12 @@ if(NRN_ENABLE_PYTHON_DYNAMIC)
     # build python3 library and install it
     if(NRNPYTHON_INCLUDE3)
       add_library(nrnpython3 SHARED ${NRN_NRNPYTHON_SRC_FILES})
+      set_target_properties(nrnpython3 PROPERTIES SOVERSION 0.0.0)
       add_dependencies(nrnpython3 nrniv_lib)
       target_include_directories(nrnpython3 PRIVATE "${NRN_OC_GENERATED_SOURCES}")
       list(APPEND nrnpython_lib_list nrnpython3)
       target_include_directories(nrnpython3 BEFORE PUBLIC ${NRNPYTHON_INCLUDE3} ${INCLUDE_DIRS})
-      install(TARGETS nrnpython3 DESTINATION ${NRN_INSTALL_SHARE_LIB_DIR})
+      install(TARGETS nrnpython3 DESTINATION ${LIB_INSTALL_DIR})
     endif()
   endif()
 endif()
-- 
2.39.1