diff --git a/Source/cmGlobalFastbuildGenerator.cxx b/Source/cmGlobalFastbuildGenerator.cxx index 9708cf2867..046681fbd8 100644 --- a/Source/cmGlobalFastbuildGenerator.cxx +++ b/Source/cmGlobalFastbuildGenerator.cxx @@ -1042,28 +1042,29 @@ void cmGlobalFastbuildGenerator::AddCompiler(std::string const& language, if (cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER_EQUAL, compilerDef.CmakeCompilerVersion, "19.20")) { - compilerDef.ExtraFiles.push_back("$Root$/c1.dll"); - compilerDef.ExtraFiles.push_back("$Root$/c1xx.dll"); - compilerDef.ExtraFiles.push_back("$Root$/c2.dll"); - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.reserve(compilerDef.ExtraFiles.size() + 16); + compilerDef.ExtraFiles.emplace_back("$Root$/c1.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/c1xx.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/c2.dll"); + compilerDef.ExtraFiles.emplace_back( "$Root$/atlprov.dll"); // Only needed if using ATL - compilerDef.ExtraFiles.push_back("$Root$/msobj140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdb140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdbcore.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdbsrv.exe"); - compilerDef.ExtraFiles.push_back("$Root$/mspft140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/msvcp140.dll"); - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.emplace_back("$Root$/msobj140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdb140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdbcore.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdbsrv.exe"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspft140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/msvcp140.dll"); + compilerDef.ExtraFiles.emplace_back( "$Root$/msvcp140_atomic_wait.dll"); // Required circa 16.8.3 // (14.28.29333) - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.emplace_back( "$Root$/tbbmalloc.dll"); // Required as of 16.2 (14.22.27905) - compilerDef.ExtraFiles.push_back("$Root$/vcruntime140.dll"); - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.emplace_back("$Root$/vcruntime140.dll"); + compilerDef.ExtraFiles.emplace_back( "$Root$/vcruntime140_1.dll"); // Required as of 16.5.1 (14.25.28610) - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.emplace_back( cmStrCat("$Root$/", i18nNum, "/clui.dll")); - compilerDef.ExtraFiles.push_back(cmStrCat( + compilerDef.ExtraFiles.emplace_back(cmStrCat( "$Root$/", i18nNum, "/mspft140ui.dll")); // Localized messages for // static analysis } @@ -1071,19 +1072,20 @@ void cmGlobalFastbuildGenerator::AddCompiler(std::string const& language, else if (cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER_EQUAL, compilerDef.CmakeCompilerVersion, "19.10")) { - compilerDef.ExtraFiles.push_back("$Root$/c1.dll"); - compilerDef.ExtraFiles.push_back("$Root$/c1xx.dll"); - compilerDef.ExtraFiles.push_back("$Root$/c2.dll"); - compilerDef.ExtraFiles.push_back( + compilerDef.ExtraFiles.reserve(compilerDef.ExtraFiles.size() + 12); + compilerDef.ExtraFiles.emplace_back("$Root$/c1.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/c1xx.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/c2.dll"); + compilerDef.ExtraFiles.emplace_back( "$Root$/atlprov.dll"); // Only needed if using ATL - compilerDef.ExtraFiles.push_back("$Root$/msobj140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdb140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdbcore.dll"); - compilerDef.ExtraFiles.push_back("$Root$/mspdbsrv.exe"); - compilerDef.ExtraFiles.push_back("$Root$/mspft140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/msvcp140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/vcruntime140.dll"); - compilerDef.ExtraFiles.push_back("$Root$/" + i18nNum + "/clui.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/msobj140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdb140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdbcore.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspdbsrv.exe"); + compilerDef.ExtraFiles.emplace_back("$Root$/mspft140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/msvcp140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/vcruntime140.dll"); + compilerDef.ExtraFiles.emplace_back("$Root$/" + i18nNum + "/clui.dll"); } } // TODO: Handle Intel compiler diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 7551b08ab5..0ed4154891 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -3167,14 +3167,14 @@ void cmGlobalGenerator::AddGlobalTarget_Package( gti.UsesTerminal = true; gti.WorkingDir = mf->GetCurrentBinaryDirectory(); cmCustomCommandLine singleLine; - singleLine.push_back(cmSystemTools::GetCPackCommand()); + singleLine.emplace_back(cmSystemTools::GetCPackCommand()); if (cmNonempty(cmakeCfgIntDir) && cmakeCfgIntDir[0] != '.') { - singleLine.push_back("-C"); - singleLine.push_back(cmakeCfgIntDir); + singleLine.emplace_back("-C"); + singleLine.emplace_back(cmakeCfgIntDir); } - singleLine.push_back("--config"); - singleLine.push_back("./CPackConfig.cmake"); - gti.CommandLines.push_back(std::move(singleLine)); + singleLine.emplace_back("--config"); + singleLine.emplace_back("./CPackConfig.cmake"); + gti.CommandLines.emplace_back(std::move(singleLine)); if (this->GetPreinstallTargetName()) { gti.Depends.emplace_back(this->GetPreinstallTargetName()); } else { @@ -3184,7 +3184,7 @@ void cmGlobalGenerator::AddGlobalTarget_Package( gti.Depends.emplace_back(this->GetAllTargetName()); } } - targets.push_back(std::move(gti)); + targets.emplace_back(std::move(gti)); } void cmGlobalGenerator::AddGlobalTarget_PackageSource( @@ -3216,11 +3216,11 @@ void cmGlobalGenerator::AddGlobalTarget_PackageSource( gti.WorkingDir = mf->GetCurrentBinaryDirectory(); gti.UsesTerminal = true; cmCustomCommandLine singleLine; - singleLine.push_back(cmSystemTools::GetCPackCommand()); - singleLine.push_back("--config"); - singleLine.push_back("./CPackSourceConfig.cmake"); - gti.CommandLines.push_back(std::move(singleLine)); - targets.push_back(std::move(gti)); + singleLine.emplace_back(cmSystemTools::GetCPackCommand()); + singleLine.emplace_back("--config"); + singleLine.emplace_back("./CPackSourceConfig.cmake"); + gti.CommandLines.emplace_back(std::move(singleLine)); + targets.emplace_back(std::move(gti)); } void cmGlobalGenerator::AddGlobalTarget_Test( @@ -3253,21 +3253,21 @@ void cmGlobalGenerator::AddGlobalTarget_Test( } } cmCustomCommandLine singleLine; - singleLine.push_back(cmSystemTools::GetCTestCommand()); + singleLine.emplace_back(cmSystemTools::GetCTestCommand()); cmList args(mf->GetDefinition("CMAKE_CTEST_ARGUMENTS")); for (auto const& arg : args) { - singleLine.push_back(arg); + singleLine.emplace_back(arg); } if (cmNonempty(cmakeCfgIntDir) && cmakeCfgIntDir[0] != '.') { - singleLine.push_back("-C"); - singleLine.push_back(cmakeCfgIntDir); + singleLine.emplace_back("-C"); + singleLine.emplace_back(cmakeCfgIntDir); } else // TODO: This is a hack. Should be something to do with the // generator { - singleLine.push_back("$(ARGS)"); + singleLine.emplace_back("$(ARGS)"); } - gti.CommandLines.push_back(std::move(singleLine)); - targets.push_back(std::move(gti)); + gti.CommandLines.emplace_back(std::move(singleLine)); + targets.emplace_back(std::move(gti)); } void cmGlobalGenerator::ReserveGlobalTargetCodegen() @@ -3321,29 +3321,29 @@ void cmGlobalGenerator::AddGlobalTarget_EditCache( // Use generator preference for the edit_cache rule if it is defined. std::string edit_cmd = this->GetEditCacheCommand(); if (!edit_cmd.empty()) { - singleLine.push_back(std::move(edit_cmd)); + singleLine.emplace_back(std::move(edit_cmd)); if (this->GetCMakeInstance()->GetIgnoreCompileWarningAsError()) { - singleLine.push_back("--compile-no-warning-as-error"); + singleLine.emplace_back("--compile-no-warning-as-error"); } if (this->GetCMakeInstance()->GetIgnoreLinkWarningAsError()) { - singleLine.push_back("--link-no-warning-as-error"); + singleLine.emplace_back("--link-no-warning-as-error"); } - singleLine.push_back("-S$(CMAKE_SOURCE_DIR)"); - singleLine.push_back("-B$(CMAKE_BINARY_DIR)"); + singleLine.emplace_back("-S$(CMAKE_SOURCE_DIR)"); + singleLine.emplace_back("-B$(CMAKE_BINARY_DIR)"); gti.Message = "Running CMake cache editor..."; gti.UsesTerminal = true; } else { - singleLine.push_back(cmSystemTools::GetCMakeCommand()); - singleLine.push_back("-E"); - singleLine.push_back("echo"); - singleLine.push_back("No interactive CMake dialog available."); + singleLine.emplace_back(cmSystemTools::GetCMakeCommand()); + singleLine.emplace_back("-E"); + singleLine.emplace_back("echo"); + singleLine.emplace_back("No interactive CMake dialog available."); gti.Message = "No interactive CMake dialog available..."; gti.UsesTerminal = false; gti.StdPipesUTF8 = true; } - gti.CommandLines.push_back(std::move(singleLine)); + gti.CommandLines.emplace_back(std::move(singleLine)); - targets.push_back(std::move(gti)); + targets.emplace_back(std::move(gti)); } void cmGlobalGenerator::AddGlobalTarget_RebuildCache( @@ -3359,19 +3359,19 @@ void cmGlobalGenerator::AddGlobalTarget_RebuildCache( gti.UsesTerminal = true; gti.PerConfig = cmTarget::PerConfig::No; cmCustomCommandLine singleLine; - singleLine.push_back(cmSystemTools::GetCMakeCommand()); - singleLine.push_back("--regenerate-during-build"); + singleLine.emplace_back(cmSystemTools::GetCMakeCommand()); + singleLine.emplace_back("--regenerate-during-build"); if (this->GetCMakeInstance()->GetIgnoreCompileWarningAsError()) { - singleLine.push_back("--compile-no-warning-as-error"); + singleLine.emplace_back("--compile-no-warning-as-error"); } if (this->GetCMakeInstance()->GetIgnoreLinkWarningAsError()) { - singleLine.push_back("--link-no-warning-as-error"); + singleLine.emplace_back("--link-no-warning-as-error"); } - singleLine.push_back("-S$(CMAKE_SOURCE_DIR)"); - singleLine.push_back("-B$(CMAKE_BINARY_DIR)"); - gti.CommandLines.push_back(std::move(singleLine)); + singleLine.emplace_back("-S$(CMAKE_SOURCE_DIR)"); + singleLine.emplace_back("-B$(CMAKE_BINARY_DIR)"); + gti.CommandLines.emplace_back(std::move(singleLine)); gti.StdPipesUTF8 = true; - targets.push_back(std::move(gti)); + targets.emplace_back(std::move(gti)); } void cmGlobalGenerator::AddGlobalTarget_Install( @@ -3438,10 +3438,10 @@ void cmGlobalGenerator::AddGlobalTarget_Install( } singleLine.push_back(cfgArg); } - singleLine.push_back("-P"); - singleLine.push_back("cmake_install.cmake"); - gti.CommandLines.push_back(singleLine); - targets.push_back(gti); + singleLine.emplace_back("-P"); + singleLine.emplace_back("cmake_install.cmake"); + gti.CommandLines.emplace_back(singleLine); + targets.emplace_back(gti); // install_local if (char const* install_local = this->GetInstallLocalTargetName()) { diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 9cd8734353..87a56fca1d 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -3875,9 +3875,10 @@ int cmake::GetSystemInformation(std::vector& args) return 1; } std::vector args2; - args2.push_back(args[0]); - args2.push_back(destPath); - args2.push_back("-DRESULT_FILE=" + resultFile); + args2.reserve(3); + args2.emplace_back(args[0]); + args2.emplace_back(destPath); + args2.emplace_back("-DRESULT_FILE=" + resultFile); int res = this->Run(args2, false); if (res != 0) {