Correctly handle @loader_path
and @rpath
dependencies
#5
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.
macpack did not handle
@loader_path
and@rpath
dependencies. I added the following functionality:rpath
in the dependency by issuing and parsingotool -l
command on the library.@rpath
library, try to find it in any of the libraries rpath.@loader_path
library, try to find it in the directory of its requester.To make it all more generic, I renamed the the
symlinks
list toreferred_as
list, which just contains the list of all the strings under which a specific library is referred to as. This can include absolute paths to libraries, paths to symlinks or strings with@loader_path
or@rpath
. This list is the only thing the patcher then looks at, as it is all the reference strings it must change.The path member of dependency always contains the resolved, absolute path to the actual library.