From 88fed668b1a35f6bd1c0ab2cd4bc6f62576b9121 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 7 Sep 2010 22:49:32 -0400 Subject: [PATCH] Make bundle items writable before fixup (#9284) This ensures that any bundle items are made user writable before any attempt is made to alter them using install_name_tool. This is because MacPorts/Fink/Homebrew don't install libraries as writable. This fix is needed to allow fixup_bundle_item to work correctly when ingesting libraries installed by these package managers. --- Modules/BundleUtilities.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index b48c61eab..fad3b7852 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -118,6 +118,9 @@ # Accumulate changes in a local variable and make *one* call to # install_name_tool at the end of the function with all the changes at once. # +# If the BU_CHMOD_BUNDLE_ITEMS variable is set then bundle items will be +# marked writable before install_name_tool tries to change them. +# # VERIFY_BUNDLE_PREREQUISITES( ) # Verifies that the sum of all prerequisites of all files inside the bundle # are contained within the bundle or are "system" libraries, presumed to exist @@ -541,6 +544,10 @@ function(fixup_bundle_item resolved_embedded_item exepath dirs) endif(NOT "${${rkey}_EMBEDDED_ITEM}" STREQUAL "") endforeach(pr) + if(BU_CHMOD_BUNDLE_ITEMS) + execute_process(COMMAND chmod u+w "${resolved_embedded_item}") + endif() + # Change this item's id and all of its references in one call # to install_name_tool: #