summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarry Mallon <harry@codexdigital.com>2016-05-25 12:43:31 (GMT)
committerBrad King <brad.king@kitware.com>2016-05-25 13:51:04 (GMT)
commit3acc29fca9395c7e76f0884d182da6da2e022b81 (patch)
tree254f0db5c5af833698cd6b845862cf652c37d91e
parent6052e4b3bfe62a8d29ca679affb101c7aec0d219 (diff)
downloadCMake-3acc29fca9395c7e76f0884d182da6da2e022b81.zip
CMake-3acc29fca9395c7e76f0884d182da6da2e022b81.tar.gz
CMake-3acc29fca9395c7e76f0884d182da6da2e022b81.tar.bz2
CPack/DragNDrop: Optionally disable `/Applications` symlink
-rw-r--r--Help/release/dev/cpack-dmg-no-app-link.rst6
-rw-r--r--Modules/CPackDMG.cmake5
-rw-r--r--Source/CPack/cmCPackDragNDropGenerator.cxx15
3 files changed, 21 insertions, 5 deletions
diff --git a/Help/release/dev/cpack-dmg-no-app-link.rst b/Help/release/dev/cpack-dmg-no-app-link.rst
new file mode 100644
index 0000000..46101a5
--- /dev/null
+++ b/Help/release/dev/cpack-dmg-no-app-link.rst
@@ -0,0 +1,6 @@
+cpack-dmg-no-app-link
+---------------------
+
+* The :module:`CPackDMG` module learned a new option to tell the CPack
+ ``DragNDrop`` generaor to skip the ``/Applications`` symlink.
+ See the :variable:`CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK` variable.
diff --git a/Modules/CPackDMG.cmake b/Modules/CPackDMG.cmake
index 1959f22..929b2f6 100644
--- a/Modules/CPackDMG.cmake
+++ b/Modules/CPackDMG.cmake
@@ -46,6 +46,11 @@
# CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is
# installed. By default no background image is set.
#
+# .. variable:: CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
+#
+# Default behaviour is to include a symlink to ``/Applications`` in the DMG.
+# Set this option to ``ON`` to avoid adding the symlink.
+#
# .. variable:: CPACK_DMG_SLA_DIR
#
# Directory where license and menu files for different languages are stored.
diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx
index 9576eff..f4379c1 100644
--- a/Source/CPack/cmCPackDragNDropGenerator.cxx
+++ b/Source/CPack/cmCPackDragNDropGenerator.cxx
@@ -305,6 +305,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
? this->GetOption("CPACK_DMG_DS_STORE_SETUP_SCRIPT")
: "";
+ const bool cpack_dmg_disable_applications_symlink =
+ this->IsOn("CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK");
+
// only put license on dmg if is user provided
if (!cpack_license_file.empty() &&
cpack_license_file.find("CPack.GenericLicense.txt") !=
@@ -323,11 +326,13 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
staging << src_dir;
// Add a symlink to /Applications so users can drag-and-drop the bundle
- // into it
- std::ostringstream application_link;
- application_link << staging.str() << "/Applications";
- cmSystemTools::CreateSymlink("/Applications",
- application_link.str().c_str());
+ // into it unless this behaviour was disabled
+ if (!cpack_dmg_disable_applications_symlink) {
+ std::ostringstream application_link;
+ application_link << staging.str() << "/Applications";
+ cmSystemTools::CreateSymlink("/Applications",
+ application_link.str().c_str());
+ }
// Optionally add a custom volume icon ...
if (!cpack_package_icon.empty()) {