CMake: Dont clear executable runtime path when installing #2454
+4
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While messing around with https://github.com/lf-lang/mujoco-c I was struggling with linking with an external shared object and the final LF binary not finding the shared library. It turns out that CMake by default clears the runtime path (RPATH) of an executable when it is installed (
cmake --target install
), so the binaries found insrc-gen/MyApp/build/MyApp
would run and find the shared object, but not the binary that was put inbin
.This PR sets a CMake variable to disable this clearing of the RPATH. I cannot say I fully understand why this is the default behavior of CMake and if there are any pitfalls of disabling it. Maybe @tanneberger knows something?