mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Use $ORIGIN to load libs from program directory
The RPATH attribute won't expand relative directories (such as ".") neither can it be a semi-colon separated list; the old way of setting it was wrong and would lead to libraries being loaded from system directories instead.
This commit is contained in:
parent
8c999fc481
commit
e63c609111
@ -262,7 +262,8 @@ endif(MSVC)
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
set_target_properties(ResInsight PROPERTIES INSTALL_RPATH "${RESINSIGHT_FINAL_INSTALL_PATH};.")
|
# tell binary to first attempt to load libraries from its own directory
|
||||||
|
set_target_properties (ResInsight PROPERTIES INSTALL_RPATH "\$ORIGIN")
|
||||||
|
|
||||||
# Find Qt libraries and sym links
|
# Find Qt libraries and sym links
|
||||||
file (GLOB RESINSIGHT_FILES
|
file (GLOB RESINSIGHT_FILES
|
||||||
@ -275,6 +276,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
|
# put a .exe.local file in the target directory to pick up DLLs from there
|
||||||
|
install (CODE "exec_program (${CMAKE_COMMAND} ARGS -E touch \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}${RESINSIGHT_FINAL_NAME}/ResInsight${CMAKE_EXECUTABLE_SUFFIX}.local)")
|
||||||
|
|
||||||
set (RESINSIGHT_FILES
|
set (RESINSIGHT_FILES
|
||||||
${QT_BINARY_DIR}/QtCore4.dll
|
${QT_BINARY_DIR}/QtCore4.dll
|
||||||
${QT_BINARY_DIR}/QtGui4.dll
|
${QT_BINARY_DIR}/QtGui4.dll
|
||||||
|
@ -114,10 +114,8 @@ if (NOT "${RESINSIGHT_PLATFORM}" STREQUAL "")
|
|||||||
set (RESINSIGHT_FINAL_NAME "${RESINSIGHT_FINAL_NAME}-${RESINSIGHT_PLATFORM}")
|
set (RESINSIGHT_FINAL_NAME "${RESINSIGHT_FINAL_NAME}-${RESINSIGHT_PLATFORM}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set (RESINSIGHT_FINAL_INSTALL_PATH "/usr/${RESINSIGHT_FINAL_NAME}")
|
|
||||||
|
|
||||||
set (CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install/)
|
set (CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install/)
|
||||||
#set (CMAKE_INSTALL_PREFIX ${RESINSIGHT_FINAL_INSTALL_PATH})
|
#set (CMAKE_INSTALL_PREFIX /usr/${RESINSIGHT_FINAL_NAME})
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Application
|
# Application
|
||||||
|
@ -8,7 +8,8 @@ set(CPP_SOURCES
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
set(RPATH_COMMAND "-Wl,-rpath=${RESINSIGHT_FINAL_INSTALL_PATH} -Wl,-rpath=.")
|
# since the compiler passes the option to the linker, double quoting is necessary
|
||||||
|
set (RPATH_COMMAND "-Wl,-rpath,'\\$$ORIGIN'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
|
Loading…
Reference in New Issue
Block a user