From 959e86dfb0742046b2c7310a5f465524735fae4e Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 14 Sep 2018 12:48:42 +0200
Subject: [PATCH] [CMake] Proper RPATH for installed projects.

---
 scripts/cmake/CMakeSetup.cmake               | 1 +
 scripts/cmake/MetisSetup.cmake               | 9 ---------
 scripts/cmake/ProjectSetup.cmake             | 2 ++
 scripts/cmake/packaging/PackagingLinux.cmake | 7 ++-----
 scripts/cmake/packaging/PackagingMac.cmake   | 4 +---
 5 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake
index 2a652145b0c..0a52647c69a 100644
--- a/scripts/cmake/CMakeSetup.cmake
+++ b/scripts/cmake/CMakeSetup.cmake
@@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
 include(UseBackportedModules)
 include(OptionRequires)
 include(CppcheckTargets)
+include(GNUInstallDirs)
 
 include(ProcessorCount)
 ProcessorCount(NUM_PROCESSORS)
diff --git a/scripts/cmake/MetisSetup.cmake b/scripts/cmake/MetisSetup.cmake
index 41677c5243d..0f07f424c12 100644
--- a/scripts/cmake/MetisSetup.cmake
+++ b/scripts/cmake/MetisSetup.cmake
@@ -34,15 +34,6 @@ elseif(MSVC)
   generate_export_header(metis)
 endif()
 
-if(BUILD_SHARED_LIBS)
-    install(TARGETS metis
-        LIBRARY DESTINATION lib
-        RUNTIME DESTINATION bin
-        ARCHIVE DESTINATION lib
-        COMPONENT ogs_partmesh
-    )
-endif()
-
 ## Compile mpmetis
 add_definitions(-DSVNINFO="")
 include_directories(${METIS_PATH}/libmetis)
diff --git a/scripts/cmake/ProjectSetup.cmake b/scripts/cmake/ProjectSetup.cmake
index 730d1497bbe..71d7c33cbab 100644
--- a/scripts/cmake/ProjectSetup.cmake
+++ b/scripts/cmake/ProjectSetup.cmake
@@ -26,6 +26,8 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
+set(CMAKE_MACOSX_RPATH 1)
+
 include(GetGitRevisionDescription)
 GET_GIT_HEAD_REVISION(GIT_REFSPEC GIT_SHA1)
 string(SUBSTRING ${GIT_SHA1} 0 8 GIT_SHA1_SHORT)
diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake
index 44c11444832..00ad219f2a8 100644
--- a/scripts/cmake/packaging/PackagingLinux.cmake
+++ b/scripts/cmake/packaging/PackagingLinux.cmake
@@ -1,13 +1,10 @@
 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()
+SET(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
 
 if(MODULE_CMD)
     message(STATUS "Found module cmd -> writing module file.")
-    execute_process(COMMAND ${MODULE_CMD} bash list --terse
+    execute_process(COMMAND ${MODULE_CMD} bash --terse list
         ERROR_VARIABLE MODULE_LIST_OUTPUT
     )
     string(REPLACE "\n" ";" MODULE_LIST_OUTPUT ${MODULE_LIST_OUTPUT})
diff --git a/scripts/cmake/packaging/PackagingMac.cmake b/scripts/cmake/packaging/PackagingMac.cmake
index a5109cb8021..ab79522ea06 100644
--- a/scripts/cmake/packaging/PackagingMac.cmake
+++ b/scripts/cmake/packaging/PackagingMac.cmake
@@ -13,9 +13,7 @@ set(CPACK_DMG_FORMAT "UDBZ")
 set(CPACK_DMG_BACKGROUND_IMAGE ${PROJECT_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.png)
 set(CPACK_DMG_DS_STORE ${PROJECT_SOURCE_DIR}/scripts/packaging/.DS_Store)
 
-if(OGS_USE_CONAN)
-    SET(CMAKE_INSTALL_RPATH "@executable_path")
-endif()
+SET(CMAKE_INSTALL_RPATH "@executable_path;@executable_path/../${CMAKE_INSTALL_LIBDIR}")
 
 if(OGS_BUILD_GUI)
     install_qt5_plugin("Qt5::QCocoaIntegrationPlugin" QT_PLUGINS)
-- 
GitLab