Skip to content

Commit

Permalink
Another attempt at fixing the RPATH issue in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
valgur committed Sep 28, 2024
1 parent 53b091d commit 94597de
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
15 changes: 13 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,21 @@ jobs:
run: cmake --build out/build --parallel --config ${{ env.BUILD_TYPE }}

- name: Inspect build outputs
run: ls -lh out/build/bin/*
if: env.OPERATING_SYSTEM == 'linux'
run: |
ls -lh out/build/bin/*
(cd out/build/bin/* && for f in *; do echo $f; objdump -p $f | grep -P 'RUNPATH|RPATH' || true; done)
- name: Debug dynamic linking issue
if: env.OPERATING_SYSTEM == 'linux'
env:
LD_DEBUG: libs
run: cd out/build/bin/*; ./common_test

- name: Unit Tests
run: ctest --test-dir out/build --build-config ${{ env.BUILD_TYPE }} --output-on-failure
env:
LD_DEBUG: libs
run: export LD_DEBUG=libs; ctest --test-dir out/build --build-config ${{ env.BUILD_TYPE }} --output-on-failure

- name: Regression Tests
shell: bash
Expand Down
13 changes: 13 additions & 0 deletions cmake/third_party.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,19 @@ function(copy_third_party_shared_libs target_dir)
else()
set(pattern "*.so*")
endif()

file(GLOB_RECURSE libs "${CONAN_DEPLOYER_DIR}/*/${pattern}")
file(COPY ${libs} DESTINATION "${target_dir}")

# Set RPATH to $ORIGIN for the copied libraries
if(NOT WIN32)
foreach(lib ${libs})
get_filename_component(lib_name ${lib} NAME)
if(APPLE)
execute_process(COMMAND install_name_tool -add_rpath @loader_path ${target_dir}/${lib_name})
else()
execute_process(COMMAND chrpath -r \$ORIGIN ${target_dir}/${lib_name})
endif()
endforeach()
endif()
endfunction()

0 comments on commit 94597de

Please sign in to comment.