diff --git a/CMakeLists.txt b/CMakeLists.txt index aba144713e5ae73011301a29466826141118bc5f..3ca970cacbd9a0bff2b3138ab2f0d6f6febba7e1 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 26647bc819facee77242a52635845702ad5d6647..e46d6f53ca1474b85366ba2def8ef28a518c55c5 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}"