summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-05-26 13:52:07 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-05-26 13:52:07 (GMT)
commit579185be7aa0425f61e4e3672284d16787044757 (patch)
tree26c13cc73cb407160a7e515ae0673b740512cc44
parent903bcbc39e2455e5467cf1db6ac48114f6c4bd57 (diff)
parent3acc29fca9395c7e76f0884d182da6da2e022b81 (diff)
downloadCMake-579185be7aa0425f61e4e3672284d16787044757.zip
CMake-579185be7aa0425f61e4e3672284d16787044757.tar.gz
CMake-579185be7aa0425f61e4e3672284d16787044757.tar.bz2
Merge topic 'cpack-dmg-no-app-link'
3acc29fc 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()) {