From 233b1308e89da172b111b7623e79b7be590fd526 Mon Sep 17 00:00:00 2001
From: ansgar <ansgar@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Fri, 28 May 2010 02:20:42 +0000
Subject: [PATCH] added use_rpath login to build

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2293 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 CMakeLists.txt          | 18 ++++++++++++++++--
 cmake_support/OST.cmake | 22 ++++++++++++++--------
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index aba144713..3ca970cac 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,6 +13,8 @@ ENABLE_TESTING()
 
 option(USE_SHADER "whether to compile with shader support"
        OFF)
+option(SET_RPATH "embed rpath upon make install"
+       OFF)
 option(COMPILE_TMTOOLS "whether to compile the tmalign and tmscore programs"
        OFF)
 option(PROFILE "whether to compile with profiling support"
@@ -219,7 +221,19 @@ include_directories(${Boost_INCLUDE_DIRS}
                     ${TIFF_INCLUDE_DIR}
                     ${SPNAV_INCLUDE_DIR}
                     )
-
+if (UNIX)
+  SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
+  SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+  if(USE_RPATH)
+    set(_USE_RPATH ON)
+    SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
+    SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+  else()
+    set(_USE_RPATH OFF)
+   SET(CMAKE_INSTALL_RPATH "")
+   SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
+  endif() 
+endif()
 
 
 add_subdirectory(modules)
@@ -233,6 +247,7 @@ set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
 
 message(STATUS 
         "OpenStructure will be built with the following options:\n"
+        "   RPath in install            (-DUSE_RPATH) : ${_USE_RPATH}\n"
         "   Graphical interface         (-DENABLE_UI) : ${_UI}\n"
         "   OpenGL support             (-DENABLE_GFX) : ${_OPENGL}\n"
         "   Image Processing support   (-DENABLE_IMG) : ${_IMG}\n"        
@@ -247,4 +262,3 @@ message(STATUS
 #add_custom_target(doc COMMAND 
 #                  ${SPHINX} ${SPHINX_OPTIONS} modules doc/html
 #                  VERBATIM)
-
diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake
index 26647bc81..e46d6f53c 100644
--- a/cmake_support/OST.cmake
+++ b/cmake_support/OST.cmake
@@ -190,12 +190,11 @@ macro(module)
     set_target_properties(${_LIB_NAME} PROPERTIES
                           LIBRARY_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
                           ARCHIVE_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
-                          RUNTIME_OUTPUT_DIRECTORY ${LIB_STAGE_PATH}
-                          INSTALL_RPATH "."
-                          INSTALL_NAME_DIR "@rpath")
+                          RUNTIME_OUTPUT_DIRECTORY ${LIB_STAGE_PATH})
     if (APPLE)
       set_target_properties(${_LIB_NAME} PROPERTIES
-                            LINK_FLAGS "-Wl,-rpath,.")
+                            LINK_FLAGS "-Wl,-rpath,."
+                            INSTALL_NAME_DIR "@rpath")
     endif()
     if (WIN32)
       #set_target_properties(${_LIB_NAME} PROPERTIES PREFIX "../")
@@ -390,13 +389,20 @@ macro(pymod)
     endif()
     target_link_libraries("_${_ARG_NAME}" ${_PARENT_LIB_NAME} 
                           ${PYTHON_LIBRARIES} ${BOOST_PYTHON_LIBRARIES})
-    set_target_properties("_${_ARG_NAME}"
-                          PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR}
-                          INSTALL_NAME_DIR "@rpath")
+    if (_USE_RPATH)
+      set_target_properties("_${_ARG_NAME}"
+                            PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR}
+                            INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}")
+    else()
+      set_target_properties("_${_ARG_NAME}"
+                            PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR}
+                            INSTALL_RPATH "")
+    endif()
     if (APPLE)
       file(RELATIVE_PATH _REL_PATH "${PYMOD_STAGE_DIR}" "${LIB_STAGE_PATH}")
       set_target_properties(_${_ARG_NAME} PROPERTIES
-                            LINK_FLAGS "-Wl,-rpath,@${_REL_PATH}")
+                            LINK_FLAGS "-Wl,-rpath,@${_REL_PATH}"
+                            INSTALL_NAME_DIR "@rpath")
     endif()                          
     if (NOT WIN32)
       set_target_properties("_${_ARG_NAME}"
-- 
GitLab