Skip to content
Snippets Groups Projects
Commit 4792cbb0 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

[a.fixRPATH] Fix broken RPATH for Linux binaries ()

Merging branch 'a.fixRPATH'  into 'main'.

See merge request !2505
parents b00b6af2 8c1091b0
No related branches found
No related tags found
1 merge request!2505Fix broken RPATH for Linux binaries
Pipeline #139333 passed
...@@ -18,10 +18,11 @@ native_Debian: ...@@ -18,10 +18,11 @@ native_Debian:
- env - env
- mkdir build - mkdir build
- cd build - cd build
- time cmake .. -GNinja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DZERO_TOLERANCE=ON -DDEVELOPER_CHECKS=ON # NOTE: CMake's Ninja generator should not be used with CMake < 3.26 due to internal bugs.
- time ninja - time cmake .. -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DZERO_TOLERANCE=ON -DDEVELOPER_CHECKS=ON
- time make -j16
- time xvfb-run -a ctest -j16 --output-on-failure - time xvfb-run -a ctest -j16 --output-on-failure
- time ninja package_source - time make package_source
- time bash var/mk_wheel_multilinux.sh - time bash var/mk_wheel_multilinux.sh
- time cpack -B ./installer . - time cpack -B ./installer .
artifacts: artifacts:
...@@ -63,7 +64,7 @@ mac_x64: ...@@ -63,7 +64,7 @@ mac_x64:
- env - env
- mkdir build - mkdir build
- cd build - cd build
- cmake .. -DCMAKE_PREFIX_PATH="$PYPLAT;$OPTDIR;$QTDIR/lib/cmake;$BREWDIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER="$CCACHE" -DBA_APPLE_BUNDLE=ON -DCMAKE_OSX_DEPLOYMENT_TARGET=11 -DCMAKE_INSTALL_PREFIX=/tmp/ba -DZERO_TOLERANCE=ON - cmake .. -DCMAKE_PREFIX_PATH="$OPTDIR;$QTDIR/lib/cmake;$BREWDIR" -DCMAKE_BUILD_TYPE=Release -DPython3_ROOT_DIR="$PYPLAT" -DCMAKE_CXX_COMPILER_LAUNCHER="$CCACHE" -DBA_APPLE_BUNDLE=ON -DCMAKE_OSX_DEPLOYMENT_TARGET=11 -DCMAKE_INSTALL_PREFIX=/tmp/ba -DZERO_TOLERANCE=ON
- make -j$NPROC - make -j$NPROC
- ctest -j3 --output-on-failure - ctest -j3 --output-on-failure
- python3 var/mac_py_package.py - python3 var/mac_py_package.py
...@@ -126,7 +127,7 @@ windows: ...@@ -126,7 +127,7 @@ windows:
- pwd - pwd
# configure, make, test, pack # configure, make, test, pack
- cmake --version - cmake --version
- cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$PY_PLATFORM_DIR;$OPT_DIR;$QTCMake_DIR" -DCMAKE_INCLUDE_PATH="$BOOST_INCLUDE_DIR" -DCMAKE_LIBRARY_PATH="$BOOST_LIB_DIR" -DCPACK_IFW_ROOT="C:/Qt/Tools/QtInstallerFramework/4.5" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER_LAUNCHER="buildcache.exe" -DCMAKE_CXX_COMPILER_LAUNCHER="buildcache.exe" -B. .. - cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$OPT_DIR;$QTCMake_DIR" -DCMAKE_INCLUDE_PATH="$BOOST_INCLUDE_DIR" -DCMAKE_LIBRARY_PATH="$BOOST_LIB_DIR" -DPython3_ROOT_DIR="$PY_PLATFORM_DIR" -DCPACK_IFW_ROOT="C:/Qt/Tools/QtInstallerFramework/4.5" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER_LAUNCHER="buildcache.exe" -DCMAKE_CXX_COMPILER_LAUNCHER="buildcache.exe" -B. ..
- pwd - pwd
- if($CI_PIPELINE_SOURCE -eq "schedule") { cmake --build . --target clean; echo "redundant target purge done" } - if($CI_PIPELINE_SOURCE -eq "schedule") { cmake --build . --target clean; echo "redundant target purge done" }
- cmake --build . -j20 --config Release - cmake --build . -j20 --config Release
......
...@@ -64,8 +64,8 @@ endif() ...@@ -64,8 +64,8 @@ endif()
# See our deployment paper (Nejati et al 2024) for explanation. # See our deployment paper (Nejati et al 2024) for explanation.
if(LINUX) if(LINUX)
target_link_options(${executable_name} PRIVATE set(link_flags "-Wl,-rpath,\$ORIGIN/../lib")
"-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib") set_target_properties(${executable_name} PROPERTIES LINK_FLAGS ${link_flags})
elseif(APPLE) elseif(APPLE)
set(MACOSX_BUNDLE_IDENTIFIER org.bornagainproject.BornAgain) set(MACOSX_BUNDLE_IDENTIFIER org.bornagainproject.BornAgain)
configure_file(${CONFIGURABLES_DIR}/MacOSXBundleInfo.plist.in ${BUILD_VAR_DIR}/Info.plist @ONLY) configure_file(${CONFIGURABLES_DIR}/MacOSXBundleInfo.plist.in ${BUILD_VAR_DIR}/Info.plist @ONLY)
......
...@@ -31,6 +31,11 @@ set(BornAgain_LIBRARIES "$CACHE{BornAgain_LIBRARIES};${lib_dir}/${libprefix}${li ...@@ -31,6 +31,11 @@ set(BornAgain_LIBRARIES "$CACHE{BornAgain_LIBRARIES};${lib_dir}/${libprefix}${li
# switch OFF Qt debug output in any configuration except DEBUG # switch OFF Qt debug output in any configuration except DEBUG
target_compile_definitions(${lib} PUBLIC $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG_OUTPUT>) target_compile_definitions(${lib} PUBLIC $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG_OUTPUT>)
if(LINUX)
set(link_flags "-Wl,-rpath,\$ORIGIN")
set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags})
endif(LINUX)
if(BORNAGAIN_PYTHON) if(BORNAGAIN_PYTHON)
target_compile_definitions(${lib} PRIVATE -DBORNAGAIN_PYTHON) target_compile_definitions(${lib} PRIVATE -DBORNAGAIN_PYTHON)
endif() endif()
......
...@@ -68,8 +68,8 @@ function(MakeLib lib swigtmpdir source_files include_files) ...@@ -68,8 +68,8 @@ function(MakeLib lib swigtmpdir source_files include_files)
# Set runtime-location of library dependencies # Set runtime-location of library dependencies
# See our deployment paper (Nejati et al 2024) for explanation. # See our deployment paper (Nejati et al 2024) for explanation.
if(LINUX) if(LINUX)
target_link_options(${lib} PRIVATE set(link_flags "-Wl,--disable-new-dtags,-rpath,\$ORIGIN:\$ORIGIN/../extra")
"-Wl,--disable-new-dtags,-rpath,\$ORIGIN:\$ORIGIN/extra") set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags})
elseif(APPLE) elseif(APPLE)
target_link_options(${lib} PRIVATE target_link_options(${lib} PRIVATE
"-Wl,-rpath,@loader_path,-rpath,@loader_path/extra") "-Wl,-rpath,@loader_path,-rpath,@loader_path/extra")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment