COMP: Ensure full path ID for macOS libraries installed for fix-up#7537
Merged
jcfr merged 1 commit intoSlicer:mainfrom Jan 12, 2024
Merged
Conversation
This commit resolves an issue in Slicer's fix-up process, specifically when updating the installed executable and plugins using `@rpath`. To align with this process, both the installed libraries and their dependent libraries must have a full path. Consequently, we consistently clear `CMAKE_INSTALL_NAME_TOOL` in all external projects. This adjustment is crucial due to the lack of an explicit option in CMake to skip the "install_name_tool" call unless the variable is cleared. Please refer to `cmInstallTargetGenerator::AddInstallNamePatchRule` C++ function found in the CMake source code for a comprehensive understanding. For historical context, the forceful setting of `CMAKE_INSTALL_NAME_TOOL` to an empty value was originally introduced in commit 4c441a2 ("COMP: Fix MacOSX packaging fixup associated with loadable module", 2012-10-25). Subsequently, the comment "XXX Probably not needed anymore" was added in commit d276165 ("BUG: Extension packaging: Ensure @rpath is not applied at build time", 2016-06-10) and is now removed, as forcing the value is indispensable to support packaging of external projects like VTK modules built externally.
Member
Author
|
Changes have been locally tested ✅ Once integrated, the macOS build for the Slicer packages of both the core and the extensions will be monitored. |
This was referenced Jan 12, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This commit resolves an issue in Slicer's fix-up process, specifically when updating the installed executable and plugins using
@rpath. To align with this process, both the installed libraries and their dependent libraries must have a full path. Consequently, we consistently clearCMAKE_INSTALL_NAME_TOOLin all external projects. This adjustment is crucial due to the lack of an explicit option in CMake to skip the "install_name_tool" call unless the variable is cleared. Please refer tocmInstallTargetGenerator::AddInstallNamePatchRuleC++ function found in the CMake source code for a comprehensive understanding.For historical context, the forceful setting of
CMAKE_INSTALL_NAME_TOOLto an empty value was originally introduced in commit 4c441a2 (COMP: Fix MacOSX packaging fixup associated with loadable module, 2012-10-25). Subsequently, the comment "XXX Probably not needed anymore" was added in commit d276165 (BUG: Extension packaging: Ensure @rpath is not applied at build time, 2016-06-10) and is now removed, as forcing the value is indispensable to support packaging of external projects like VTK modules built externally.