diff options
author | Harry Mallon <harry@codexdigital.com> | 2016-05-25 12:43:31 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-05-25 13:51:04 (GMT) |
commit | 3acc29fca9395c7e76f0884d182da6da2e022b81 (patch) | |
tree | 254f0db5c5af833698cd6b845862cf652c37d91e | |
parent | 6052e4b3bfe62a8d29ca679affb101c7aec0d219 (diff) | |
download | CMake-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.rst | 6 | ||||
-rw-r--r-- | Modules/CPackDMG.cmake | 5 | ||||
-rw-r--r-- | Source/CPack/cmCPackDragNDropGenerator.cxx | 15 |
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()) { |