summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid <mike@mikemcquaid.com>2010-09-08 02:49:32 (GMT)
committerDavid Cole <david.cole@kitware.com>2010-09-08 02:49:32 (GMT)
commit88fed668b1a35f6bd1c0ab2cd4bc6f62576b9121 (patch)
tree89e855462deccae39133ad4589d96892473417dc
parent409c936ff44eb6aa82c052dc223adaa630242b23 (diff)
downloadCMake-88fed668b1a35f6bd1c0ab2cd4bc6f62576b9121.zip
CMake-88fed668b1a35f6bd1c0ab2cd4bc6f62576b9121.tar.gz
CMake-88fed668b1a35f6bd1c0ab2cd4bc6f62576b9121.tar.bz2
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.
-rw-r--r--Modules/BundleUtilities.cmake7
1 files changed, 7 insertions, 0 deletions
diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake
index b48c61e..fad3b78 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(<bundle> <result_var> <info_var>)
# 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:
#