Преглед изворни кода

CPack: Pass volume mount name to AppleScript instead of volume name.

Get the mount name from mount point path returned by hdiutil instead of
assuming it is the volume name.  They can be different in case of
conflict with an already-mounted volume.
Gusts Kaksis пре 8 година
родитељ
комит
351c1b1ad6
1 измењених фајлова са 3 додато и 1 уклоњено
  1. 3 1
      Source/CPack/cmCPackDragNDropGenerator.cxx

+ 3 - 1
Source/CPack/cmCPackDragNDropGenerator.cxx

@@ -447,6 +447,8 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
     cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*");
     cmsys::RegularExpression mountpoint_regex(".*(/Volumes/[^\n]+)\n.*");
     mountpoint_regex.find(attach_output.c_str());
     mountpoint_regex.find(attach_output.c_str());
     std::string const temp_mount = mountpoint_regex.match(1);
     std::string const temp_mount = mountpoint_regex.match(1);
+    std::string const temp_mount_name =
+      temp_mount.substr(sizeof("/Volumes/") - 1);
 
 
     // Remove dummy padding file so we have enough space on RW image ...
     // Remove dummy padding file so we have enough space on RW image ...
     std::ostringstream dummy_padding;
     std::ostringstream dummy_padding;
@@ -480,7 +482,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
       std::ostringstream setup_script_command;
       std::ostringstream setup_script_command;
       setup_script_command << "osascript"
       setup_script_command << "osascript"
                            << " \"" << cpack_dmg_ds_store_setup_script << "\""
                            << " \"" << cpack_dmg_ds_store_setup_script << "\""
-                           << " \"" << cpack_dmg_volume_name << "\"";
+                           << " \"" << temp_mount_name << "\"";
       std::string error;
       std::string error;
       if (!this->RunCommand(setup_script_command, &error)) {
       if (!this->RunCommand(setup_script_command, &error)) {
         cmCPackLogger(cmCPackLog::LOG_ERROR,
         cmCPackLogger(cmCPackLog::LOG_ERROR,