feat: add '--install-deps-path' and '--skip-*' options #87
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.
When playing with bundling complex application, I faced the challenge of patching several different binaries in several paths that need to refer the same 'libs' directory.
The challenge is that one should search for '../../libs', whle other - '../libs'.
The dependencies of binaries intersect, but are not entirely the same. When I patch the first binary, I still need to collect part of libraries for the second. Also, as libraries depend on each other, I need to use some 'stable' import path inside them to not be bound to the executable path.
The patch offers a way to solve the problem:
--skip-existing
makes dylibbundler to use existing files inside--dest-dir
and not patch them, allowing dylibbundler to patch libraries only once when executed for several binaries, adding only missing dependencies.--skip-patching
enables dylibbundler to iterate over dependencies and only bundle them into destination directory--skip-missing
enables dylibbundler to not fail or request interactive input for dependencies it cannot locate on FS (suitable for CI)--install-deps-path
makes dylibbundler to use different paths forinstall_name_tool
when it patches the original file (--fix-file) and its dependencies. The option defaults to
--install-path` value so the change is fully backward-compatible with previous logic of the tool.