summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2007-12-26 21:57:13 (GMT)
committerDavid Cole <david.cole@kitware.com>2007-12-26 21:57:13 (GMT)
commit764f6838a75edd42c4b78dd50c539896790b2229 (patch)
tree112e848b9a9d59d63956fdbdb047df1430f967c4 /Modules
parentad788fe4c8915a3ef71e1bdf09d124dace4b78ca (diff)
downloadCMake-764f6838a75edd42c4b78dd50c539896790b2229.zip
CMake-764f6838a75edd42c4b78dd50c539896790b2229.tar.gz
CMake-764f6838a75edd42c4b78dd50c539896790b2229.tar.bz2
ENH: Give Mac installers package relocation capability. Default location is still the same for backwards compatibility, but packages will now be relocatable by default like they are on Windows via the NSIS installer. New CPack variables for controlling this functionality are CPACK_PACKAGE_DEFAULT_LOCATION and CPACK_PACKAGE_RELOCATABLE.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CPack.Info.plist.in4
-rw-r--r--Modules/CPack.cmake9
2 files changed, 11 insertions, 2 deletions
diff --git a/Modules/CPack.Info.plist.in b/Modules/CPack.Info.plist.in
index 58dabad..da4872b 100644
--- a/Modules/CPack.Info.plist.in
+++ b/Modules/CPack.Info.plist.in
@@ -12,7 +12,7 @@
<key>IFPkgFlagAuthorizationAction</key>
<string>AdminAuthorization</string>
<key>IFPkgFlagDefaultLocation</key>
-<string>/</string>
+<string>@CPACK_PACKAGE_DEFAULT_LOCATION@</string>
<key>IFPkgFlagInstallFat</key>
<false/>
<key>IFPkgFlagIsRequired</key>
@@ -20,7 +20,7 @@
<key>IFPkgFlagOverwritePermissions</key>
<true/>
<key>IFPkgFlagRelocatable</key>
-<false/>
+<@CPACK_PACKAGE_RELOCATABLE@/>
<key>IFPkgFlagRestartAction</key>
<string>NoRestart</string>
<key>IFPkgFlagRootVolumeOnly</key>
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake
index eb9ba43..b0075ac 100644
--- a/Modules/CPack.cmake
+++ b/Modules/CPack.cmake
@@ -78,6 +78,15 @@ cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_DIRECTORY
"${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
"${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
+cpack_set_if_not_set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+cpack_set_if_not_set(CPACK_PACKAGE_RELOCATABLE "true")
+
+# always force to exactly "true" or "false" for CPack.Info.plist.in:
+if(CPACK_PACKAGE_RELOCATABLE)
+ set(CPACK_PACKAGE_RELOCATABLE "true")
+else(CPACK_PACKAGE_RELOCATABLE)
+ set(CPACK_PACKAGE_RELOCATABLE "false")
+endif(CPACK_PACKAGE_RELOCATABLE)
macro(cpack_check_file_exists file description)
if(NOT EXISTS "${file}")