diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2023-07-26 19:40:26 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2023-07-30 22:33:07 (GMT) |
commit | e1b70d7286d8a53b5046b1fb5e2b042333f5b736 (patch) | |
tree | 705fc3714be27fe74e47d80fa16d0ec1d83dd5bb /Source/CPack | |
parent | f5d04b5bf0c1b610ab80209f313996f050cd5979 (diff) | |
download | CMake-e1b70d7286d8a53b5046b1fb5e2b042333f5b736.zip CMake-e1b70d7286d8a53b5046b1fb5e2b042333f5b736.tar.gz CMake-e1b70d7286d8a53b5046b1fb5e2b042333f5b736.tar.bz2 |
cmCPackDragNDropGenerator: use a string instead of a stream for commands
Diffstat (limited to 'Source/CPack')
-rw-r--r-- | Source/CPack/cmCPackBundleGenerator.cxx | 36 | ||||
-rw-r--r-- | Source/CPack/cmCPackDragNDropGenerator.cxx | 97 | ||||
-rw-r--r-- | Source/CPack/cmCPackDragNDropGenerator.h | 2 |
3 files changed, 70 insertions, 65 deletions
diff --git a/Source/CPack/cmCPackBundleGenerator.cxx b/Source/CPack/cmCPackBundleGenerator.cxx index 7e6e473..dad404a 100644 --- a/Source/CPack/cmCPackBundleGenerator.cxx +++ b/Source/CPack/cmCPackBundleGenerator.cxx @@ -196,15 +196,11 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir) // sign the files supplied by the user, ie. frameworks. for (auto const& file : relFiles) { - std::ostringstream temp_sign_file_cmd; - temp_sign_file_cmd << this->GetOption("CPACK_COMMAND_CODESIGN"); - temp_sign_file_cmd << " " << sign_parameter << " -s \"" - << cpack_apple_cert_app; - temp_sign_file_cmd << "\" -i "; - temp_sign_file_cmd << this->GetOption("CPACK_APPLE_BUNDLE_ID"); - temp_sign_file_cmd << " \""; - temp_sign_file_cmd << bundle_path; - temp_sign_file_cmd << file << "\""; + auto temp_sign_file_cmd = + cmStrCat(this->GetOption("CPACK_COMMAND_CODESIGN"), ' ', + sign_parameter, " -s \"", cpack_apple_cert_app, "\" -i ", + this->GetOption("CPACK_APPLE_BUNDLE_ID"), " \"", bundle_path, + file, '"'); if (!this->RunCommand(temp_sign_file_cmd, &output)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -216,11 +212,9 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir) } // sign main binary - std::ostringstream temp_sign_binary_cmd; - temp_sign_binary_cmd << this->GetOption("CPACK_COMMAND_CODESIGN"); - temp_sign_binary_cmd << " " << sign_parameter << " -s \"" - << cpack_apple_cert_app; - temp_sign_binary_cmd << "\" \"" << bundle_path << "\""; + auto temp_sign_binary_cmd = + cmStrCat(this->GetOption("CPACK_COMMAND_CODESIGN"), ' ', sign_parameter, + " -s \"", cpack_apple_cert_app, "\" \"", bundle_path, '"'); if (!this->RunCommand(temp_sign_binary_cmd, &output)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -232,15 +226,15 @@ int cmCPackBundleGenerator::SignBundle(const std::string& src_dir) } // sign app bundle - std::ostringstream temp_codesign_cmd; - temp_codesign_cmd << this->GetOption("CPACK_COMMAND_CODESIGN"); - temp_codesign_cmd << " " << sign_parameter << " -s \"" - << cpack_apple_cert_app << "\""; + auto temp_codesign_cmd = + cmStrCat(this->GetOption("CPACK_COMMAND_CODESIGN"), ' ', sign_parameter, + " -s \"", cpack_apple_cert_app, "\""); if (this->GetOption("CPACK_BUNDLE_APPLE_ENTITLEMENTS")) { - temp_codesign_cmd << " --entitlements "; - temp_codesign_cmd << this->GetOption("CPACK_BUNDLE_APPLE_ENTITLEMENTS"); + temp_codesign_cmd += + cmStrCat(" --entitlements ", + this->GetOption("CPACK_BUNDLE_APPLE_ENTITLEMENTS")); } - temp_codesign_cmd << " \"" << bundle_path << "\""; + temp_codesign_cmd += cmStrCat(" \"", bundle_path, '"'); if (!this->RunCommand(temp_codesign_cmd, &output)) { cmCPackLogger(cmCPackLog::LOG_ERROR, diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index 82f58a2..3beba64 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -243,18 +243,18 @@ bool cmCPackDragNDropGenerator::CreateEmptyFile(std::ostringstream& target, return true; } -bool cmCPackDragNDropGenerator::RunCommand(std::ostringstream& command, +bool cmCPackDragNDropGenerator::RunCommand(std::string const& command, std::string* output) { int exit_code = 1; bool result = cmSystemTools::RunSingleCommand( - command.str(), output, output, &exit_code, nullptr, this->GeneratorVerbose, + command, output, output, &exit_code, nullptr, this->GeneratorVerbose, cmDuration::zero()); if (!result || exit_code) { cmCPackLogger(cmCPackLog::LOG_ERROR, - "Error executing: " << command.str() << std::endl); + "Error executing: " << command << std::endl); return false; } @@ -412,15 +412,21 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), "/temp.dmg"); std::string create_error; - std::ostringstream temp_image_command; - temp_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); - temp_image_command << " create"; - temp_image_command << " -ov"; - temp_image_command << " -srcfolder \"" << staging.str() << "\""; - temp_image_command << " -volname \"" << cpack_dmg_volume_name << "\""; - temp_image_command << " -fs \"" << cpack_dmg_filesystem << "\""; - temp_image_command << " -format " << temp_image_format; - temp_image_command << " \"" << temp_image << "\""; + auto temp_image_command = + cmStrCat(this->GetOption("CPACK_COMMAND_HDIUTIL"), + " create" + " -ov" + " -srcfolder \"", + staging.str(), + "\"" + " -volname \"", + cpack_dmg_volume_name, + "\"" + " -fs \"", + cpack_dmg_filesystem, + "\"" + " -format ", + temp_image_format, " \"", temp_image, "\""); if (!this->RunCommand(temp_image_command, &create_error)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -436,10 +442,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // before we exit. bool had_error = false; - std::ostringstream attach_command; - attach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); - attach_command << " attach"; - attach_command << " \"" << temp_image << "\""; + auto attach_command = cmStrCat(this->GetOption("CPACK_COMMAND_HDIUTIL"), + " attach" + " \"", + temp_image, "\""); std::string attach_output; if (!this->RunCommand(attach_command, &attach_output)) { @@ -468,10 +474,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Optionally set the custom icon flag for the image ... if (!had_error && !cpack_package_icon->empty()) { std::string error; - std::ostringstream setfile_command; - setfile_command << this->GetOption("CPACK_COMMAND_SETFILE"); - setfile_command << " -a C"; - setfile_command << " \"" << temp_mount << "\""; + auto setfile_command = cmStrCat(this->GetOption("CPACK_COMMAND_SETFILE"), + " -a C" + " \"", + temp_mount, "\""); if (!this->RunCommand(setfile_command, &error)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -486,10 +492,12 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Optionally we can execute a custom apple script to generate // the .DS_Store for the volume folder ... if (!had_error && !cpack_dmg_ds_store_setup_script->empty()) { - std::ostringstream setup_script_command; - setup_script_command << "osascript" - << " \"" << cpack_dmg_ds_store_setup_script << "\"" - << " \"" << temp_mount_name << "\""; + auto setup_script_command = cmStrCat("osascript" + " \"", + cpack_dmg_ds_store_setup_script, + "\"" + " \"", + temp_mount_name, "\""); std::string error; if (!this->RunCommand(setup_script_command, &error)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -501,10 +509,10 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } } - std::ostringstream detach_command; - detach_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); - detach_command << " detach"; - detach_command << " \"" << temp_mount << "\""; + auto detach_command = cmStrCat(this->GetOption("CPACK_COMMAND_HDIUTIL"), + " detach" + " \"", + temp_mount, '\"'); if (!this->RunCommand(detach_command)) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -519,14 +527,15 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, } // Create the final compressed read-only disk image ... - std::ostringstream final_image_command; - final_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); - final_image_command << " convert \"" << temp_image << "\""; - final_image_command << " -format "; - final_image_command << cpack_dmg_format; - final_image_command << " -imagekey"; - final_image_command << " zlib-level=9"; - final_image_command << " -o \"" << output_file << "\""; + auto final_image_command = cmStrCat(this->GetOption("CPACK_COMMAND_HDIUTIL"), + " convert \"", temp_image, + "\"" + " -format ", + cpack_dmg_format, + " -imagekey" + " zlib-level=9" + " -o \"", + output_file, "\""); std::string convert_error; @@ -667,13 +676,15 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, this->WriteRezXML(sla_xml, rez); // Create the final compressed read-only disk image ... - std::ostringstream embed_sla_command; - embed_sla_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); - embed_sla_command << " udifrez"; - embed_sla_command << " -xml"; - embed_sla_command << " \"" << sla_xml << "\""; - embed_sla_command << " FIXME_WHY_IS_THIS_ARGUMENT_NEEDED"; - embed_sla_command << " \"" << output_file << "\""; + auto embed_sla_command = cmStrCat(this->GetOption("CPACK_COMMAND_HDIUTIL"), + " udifrez" + " -xml" + " \"", + sla_xml, + "\"" + " FIXME_WHY_IS_THIS_ARGUMENT_NEEDED" + " \"", + output_file, "\""); std::string embed_error; if (!this->RunCommand(embed_sla_command, &embed_error)) { cmCPackLogger(cmCPackLog::LOG_ERROR, diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 6d1267b..6089ae5 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -33,7 +33,7 @@ protected: bool CopyFile(std::ostringstream& source, std::ostringstream& target); bool CreateEmptyFile(std::ostringstream& target, size_t size); - bool RunCommand(std::ostringstream& command, std::string* output = nullptr); + bool RunCommand(std::string const& command, std::string* output = nullptr); std::string GetComponentInstallDirNameSuffix( const std::string& componentName) override; |