From 0fa6b9f68907ef3e1f08f9adec5bbcbf8f23799e Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Tue, 30 Jan 2018 12:29:20 +0100
Subject: [PATCH] [CMake] Installation of .so files into install-dir/lib when
 using Conan.

RPath is adapted too.
---
 scripts/cmake/ConanSetup.cmake               | 3 +++
 scripts/cmake/packaging/Pack.cmake           | 8 +++++++-
 scripts/cmake/packaging/PackagingLinux.cmake | 3 +++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 94f2ca209c4..72135a8d25a 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -77,6 +77,9 @@ if(MSVC)
     set(CONAN_IMPORTS ${CONAN_IMPORTS} "bin, *.dll* -> ./bin")
     set(CONAN_IMPORTS ${CONAN_IMPORTS} "plugins/platforms, *.dll* -> ./bin/platforms")
 endif()
+if(UNIX AND NOT APPLE)
+    set(CONAN_IMPORTS ${CONAN_IMPORTS} "lib, *.so* -> ./lib")
+endif()
 
 file(TIMESTAMP ${PROJECT_BINARY_DIR}/conan_install_timestamp.txt file_timestamp "%Y.%m.%d")
 string(TIMESTAMP timestamp "%Y.%m.%d")
diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake
index 0742db29b61..3ef648bf2d4 100644
--- a/scripts/cmake/packaging/Pack.cmake
+++ b/scripts/cmake/packaging/Pack.cmake
@@ -104,11 +104,17 @@ cpack_add_component(ogs_docs
 
 if(OGS_USE_CONAN)
     # Install shared libraries, copied to bin-dir
-    foreach(PATTERN "*.dll" "*.dylib")
+    foreach(PATTERN "*.dll" "*.dylib*")
         file(GLOB MATCHED_FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PATTERN})
         install(FILES ${MATCHED_FILES} DESTINATION bin)
     endforeach()
 
+    # Install shared libraries, copied to lib-dir
+    foreach(PATTERN "*.so*")
+        file(GLOB MATCHED_FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PATTERN})
+        install(FILES ${MATCHED_FILES} DESTINATION lib)
+    endforeach()
+
     # macOS frameworks are directories, exclude header files
     file(GLOB MATCHED_DIRECTORIES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/*.framework")
     install(DIRECTORY ${MATCHED_DIRECTORIES} DESTINATION bin
diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake
index c35013f60f5..44c11444832 100644
--- a/scripts/cmake/packaging/PackagingLinux.cmake
+++ b/scripts/cmake/packaging/PackagingLinux.cmake
@@ -1,6 +1,9 @@
 set(CPACK_GENERATOR TGZ)
 # Adds the binaries location to the LD_LIBRARY_PATH
 set(CMAKE_INSTALL_RPATH \$ORIGIN/)
+if(OGS_USE_CONAN)
+    SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
+endif()
 
 if(MODULE_CMD)
     message(STATUS "Found module cmd -> writing module file.")
-- 
GitLab