mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
Refactor: Optimize ostream::operator<<() calls for some generators
This commit is contained in:
@@ -468,8 +468,9 @@ bool cmGlobalGenerator::FindMakeProgram(cmMakefile* mf)
|
||||
if (mf->GetDefinition("CMAKE_MAKE_PROGRAM").IsOff()) {
|
||||
std::ostringstream err;
|
||||
err << "CMake was unable to find a build program corresponding to \""
|
||||
<< this->GetName() << "\". CMAKE_MAKE_PROGRAM is not set. You "
|
||||
<< "probably need to select a different build tool.";
|
||||
<< this->GetName()
|
||||
<< "\". CMAKE_MAKE_PROGRAM is not set. You "
|
||||
"probably need to select a different build tool.";
|
||||
cmSystemTools::Error(err.str());
|
||||
cmSystemTools::SetFatalErrorOccurred();
|
||||
return false;
|
||||
@@ -872,11 +873,7 @@ void cmGlobalGenerator::EnableLanguage(
|
||||
std::ostringstream noCompiler;
|
||||
cmValue compilerFile = mf->GetDefinition(compilerName);
|
||||
if (!cmNonempty(compilerFile) || cmIsNOTFOUND(*compilerFile)) {
|
||||
/* clang-format off */
|
||||
noCompiler <<
|
||||
"No " << compilerName << " could be found.\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
noCompiler << "No " << compilerName << " could be found.\n";
|
||||
} else if ((lang != "RC") && (lang != "ASM_MARMASM") &&
|
||||
(lang != "ASM_MASM")) {
|
||||
if (!cmSystemTools::FileIsFullPath(*compilerFile)) {
|
||||
@@ -2368,32 +2365,24 @@ std::string cmGlobalGenerator::GenerateCMakeBuildCommand(
|
||||
makeCommand =
|
||||
cmStrCat(cmSystemTools::ConvertToOutputPath(makeCommand), " --build .");
|
||||
if (!config.empty()) {
|
||||
makeCommand += " --config \"";
|
||||
makeCommand += config;
|
||||
makeCommand += "\"";
|
||||
makeCommand = cmStrCat(makeCommand, " --config \"", config, '"');
|
||||
}
|
||||
if (!parallel.empty()) {
|
||||
makeCommand += " --parallel \"";
|
||||
makeCommand += parallel;
|
||||
makeCommand += "\"";
|
||||
makeCommand = cmStrCat(makeCommand, " --parallel \"", parallel, '"');
|
||||
}
|
||||
if (!target.empty()) {
|
||||
makeCommand += " --target \"";
|
||||
makeCommand += target;
|
||||
makeCommand += "\"";
|
||||
makeCommand = cmStrCat(makeCommand, " --target \"", target, '"');
|
||||
}
|
||||
const char* sep = " -- ";
|
||||
if (ignoreErrors) {
|
||||
const char* iflag = this->GetBuildIgnoreErrorsFlag();
|
||||
if (iflag && *iflag) {
|
||||
makeCommand += sep;
|
||||
makeCommand += iflag;
|
||||
makeCommand = cmStrCat(makeCommand, sep, iflag);
|
||||
sep = " ";
|
||||
}
|
||||
}
|
||||
if (!native.empty()) {
|
||||
makeCommand += sep;
|
||||
makeCommand += native;
|
||||
makeCommand = cmStrCat(makeCommand, sep, native);
|
||||
}
|
||||
return makeCommand;
|
||||
}
|
||||
|
||||
@@ -283,8 +283,10 @@ void cmLocalNinjaGenerator::WriteBuildFileTop()
|
||||
void cmLocalNinjaGenerator::WriteProjectHeader(std::ostream& os)
|
||||
{
|
||||
cmGlobalNinjaGenerator::WriteDivider(os);
|
||||
os << "# Project: " << this->GetProjectName() << '\n'
|
||||
<< "# Configurations: " << cmJoin(this->GetConfigNames(), ", ") << '\n';
|
||||
os << "# Project: " << this->GetProjectName()
|
||||
<< "\n"
|
||||
"# Configurations: "
|
||||
<< cmJoin(this->GetConfigNames(), ", ") << '\n';
|
||||
cmGlobalNinjaGenerator::WriteDivider(os);
|
||||
}
|
||||
|
||||
@@ -360,7 +362,7 @@ void cmLocalNinjaGenerator::WriteNinjaFilesInclusionConfig(std::ostream& os)
|
||||
std::string const commonFilePath = ng->EncodePath(ninjaCommonFile);
|
||||
cmGlobalNinjaGenerator::WriteInclude(os, commonFilePath,
|
||||
"Include common file.");
|
||||
os << "\n";
|
||||
os << '\n';
|
||||
}
|
||||
|
||||
void cmLocalNinjaGenerator::WriteNinjaFilesInclusionCommon(std::ostream& os)
|
||||
@@ -373,7 +375,7 @@ void cmLocalNinjaGenerator::WriteNinjaFilesInclusionCommon(std::ostream& os)
|
||||
std::string const rulesFilePath = ng->EncodePath(ninjaRulesFile);
|
||||
cmGlobalNinjaGenerator::WriteInclude(os, rulesFilePath,
|
||||
"Include rules file.");
|
||||
os << "\n";
|
||||
os << '\n';
|
||||
}
|
||||
|
||||
void cmLocalNinjaGenerator::WriteNinjaWorkDir(std::ostream& os)
|
||||
@@ -391,8 +393,8 @@ void cmLocalNinjaGenerator::WriteProcessedMakefile(std::ostream& os)
|
||||
{
|
||||
cmGlobalNinjaGenerator::WriteDivider(os);
|
||||
os << "# Write statements declared in CMakeLists.txt:\n"
|
||||
<< "# " << this->Makefile->GetSafeDefinition("CMAKE_CURRENT_LIST_FILE")
|
||||
<< '\n';
|
||||
"# "
|
||||
<< this->Makefile->GetSafeDefinition("CMAKE_CURRENT_LIST_FILE") << '\n';
|
||||
if (this->IsRootMakefile()) {
|
||||
os << "# Which is the root file.\n";
|
||||
}
|
||||
|
||||
@@ -480,42 +480,36 @@ void cmLocalUnixMakefileGenerator3::WriteDirectoryInformationFile()
|
||||
this->WriteDisclaimer(infoFileStream);
|
||||
|
||||
// Setup relative path conversion tops.
|
||||
/* clang-format off */
|
||||
infoFileStream
|
||||
<< "# Relative path conversion top directories.\n"
|
||||
<< "set(CMAKE_RELATIVE_PATH_TOP_SOURCE \""
|
||||
<< this->GetRelativePathTopSource() << "\")\n"
|
||||
<< "set(CMAKE_RELATIVE_PATH_TOP_BINARY \""
|
||||
<< this->GetRelativePathTopBinary() << "\")\n"
|
||||
<< "\n";
|
||||
/* clang-format on */
|
||||
infoFileStream << "# Relative path conversion top directories.\n"
|
||||
"set(CMAKE_RELATIVE_PATH_TOP_SOURCE \""
|
||||
<< this->GetRelativePathTopSource() << "\")\n"
|
||||
<< "set(CMAKE_RELATIVE_PATH_TOP_BINARY \""
|
||||
<< this->GetRelativePathTopBinary() << "\")\n"
|
||||
<< '\n';
|
||||
|
||||
// Tell the dependency scanner to use unix paths if necessary.
|
||||
if (cmSystemTools::GetForceUnixPaths()) {
|
||||
/* clang-format off */
|
||||
infoFileStream
|
||||
<< "# Force unix paths in dependencies.\n"
|
||||
<< "set(CMAKE_FORCE_UNIX_PATHS 1)\n"
|
||||
<< "\n";
|
||||
/* clang-format on */
|
||||
infoFileStream << "# Force unix paths in dependencies.\n"
|
||||
"set(CMAKE_FORCE_UNIX_PATHS 1)\n"
|
||||
"\n";
|
||||
}
|
||||
|
||||
// Store the include regular expressions for this directory.
|
||||
infoFileStream << "\n"
|
||||
<< "# The C and CXX include file regular expressions for "
|
||||
<< "this directory.\n";
|
||||
infoFileStream << "set(CMAKE_C_INCLUDE_REGEX_SCAN ";
|
||||
"# The C and CXX include file regular expressions for "
|
||||
"this directory.\n"
|
||||
"set(CMAKE_C_INCLUDE_REGEX_SCAN ";
|
||||
cmLocalUnixMakefileGenerator3::WriteCMakeArgument(
|
||||
infoFileStream, this->Makefile->GetIncludeRegularExpression());
|
||||
infoFileStream << ")\n";
|
||||
infoFileStream << "set(CMAKE_C_INCLUDE_REGEX_COMPLAIN ";
|
||||
infoFileStream << ")\n"
|
||||
"set(CMAKE_C_INCLUDE_REGEX_COMPLAIN ";
|
||||
cmLocalUnixMakefileGenerator3::WriteCMakeArgument(
|
||||
infoFileStream, this->Makefile->GetComplainRegularExpression());
|
||||
infoFileStream << ")\n";
|
||||
infoFileStream
|
||||
<< "set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\n";
|
||||
infoFileStream << "set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN "
|
||||
"${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n";
|
||||
<< ")\n"
|
||||
<< "set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})\n"
|
||||
"set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN "
|
||||
"${CMAKE_C_INCLUDE_REGEX_COMPLAIN})\n";
|
||||
}
|
||||
|
||||
std::string cmLocalUnixMakefileGenerator3::ConvertToFullPath(
|
||||
@@ -583,7 +577,7 @@ void cmLocalUnixMakefileGenerator3::WriteMakeRule(
|
||||
if (symbolic) {
|
||||
if (cmValue sym =
|
||||
this->Makefile->GetDefinition("CMAKE_MAKE_SYMBOLIC_RULE")) {
|
||||
os << tgt << space << ": " << *sym << "\n";
|
||||
os << tgt << space << ": " << *sym << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,12 +597,12 @@ void cmLocalUnixMakefileGenerator3::WriteMakeRule(
|
||||
|
||||
if (!commands.empty()) {
|
||||
// Write the list of commands.
|
||||
os << cmWrap("\t", commands, "", "\n") << "\n";
|
||||
os << cmWrap("\t", commands, "", "\n") << '\n';
|
||||
}
|
||||
if (symbolic && !this->IsWatcomWMake()) {
|
||||
os << ".PHONY : " << tgt << "\n";
|
||||
os << ".PHONY : " << tgt << '\n';
|
||||
}
|
||||
os << "\n";
|
||||
os << '\n';
|
||||
// Add the output to the local help if requested.
|
||||
if (in_help) {
|
||||
this->LocalHelp.push_back(target);
|
||||
@@ -636,27 +630,24 @@ void cmLocalUnixMakefileGenerator3::WriteMakeVariables(
|
||||
{
|
||||
this->WriteDivider(makefileStream);
|
||||
makefileStream << "# Set environment variables for the build.\n"
|
||||
<< "\n";
|
||||
"\n";
|
||||
cmGlobalUnixMakefileGenerator3* gg =
|
||||
static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
|
||||
if (gg->DefineWindowsNULL) {
|
||||
makefileStream << "!IF \"$(OS)\" == \"Windows_NT\"\n"
|
||||
<< "NULL=\n"
|
||||
<< "!ELSE\n"
|
||||
<< "NULL=nul\n"
|
||||
<< "!ENDIF\n";
|
||||
"NULL=\n"
|
||||
"!ELSE\n"
|
||||
"NULL=nul\n"
|
||||
"!ENDIF\n";
|
||||
}
|
||||
if (this->IsWindowsShell()) {
|
||||
makefileStream << "SHELL = cmd.exe\n"
|
||||
<< "\n";
|
||||
"\n";
|
||||
} else {
|
||||
#if !defined(__VMS)
|
||||
/* clang-format off */
|
||||
makefileStream
|
||||
<< "# The shell in which to execute make rules.\n"
|
||||
<< "SHELL = /bin/sh\n"
|
||||
<< "\n";
|
||||
/* clang-format on */
|
||||
makefileStream << "# The shell in which to execute make rules.\n"
|
||||
"SHELL = /bin/sh\n"
|
||||
"\n";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -667,38 +658,32 @@ void cmLocalUnixMakefileGenerator3::WriteMakeVariables(
|
||||
cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL);
|
||||
}
|
||||
|
||||
/* clang-format off */
|
||||
makefileStream
|
||||
<< "# The CMake executable.\n"
|
||||
<< "CMAKE_COMMAND = "
|
||||
"CMAKE_COMMAND = "
|
||||
<< cmakeShellCommand
|
||||
<< "\n"
|
||||
<< "\n";
|
||||
makefileStream
|
||||
<< "# The command to remove a file.\n"
|
||||
<< "RM = "
|
||||
"\n"
|
||||
"# The command to remove a file.\n"
|
||||
"RM = "
|
||||
<< cmakeShellCommand
|
||||
<< " -E rm -f\n"
|
||||
<< "\n";
|
||||
makefileStream
|
||||
<< "# Escaping for special characters.\n"
|
||||
<< "EQUALS = =\n"
|
||||
<< "\n";
|
||||
makefileStream
|
||||
<< "# The top-level source directory on which CMake was run.\n"
|
||||
<< "CMAKE_SOURCE_DIR = "
|
||||
<< this->ConvertToOutputFormat(
|
||||
this->GetSourceDirectory(), cmOutputConverter::SHELL)
|
||||
"\n"
|
||||
"# Escaping for special characters.\n"
|
||||
"EQUALS = =\n"
|
||||
"\n"
|
||||
"# The top-level source directory on which CMake was run.\n"
|
||||
"CMAKE_SOURCE_DIR = "
|
||||
<< this->ConvertToOutputFormat(this->GetSourceDirectory(),
|
||||
cmOutputConverter::SHELL)
|
||||
<< "\n"
|
||||
<< "\n";
|
||||
makefileStream
|
||||
<< "# The top-level build directory on which CMake was run.\n"
|
||||
<< "CMAKE_BINARY_DIR = "
|
||||
<< this->ConvertToOutputFormat(
|
||||
this->GetBinaryDirectory(), cmOutputConverter::SHELL)
|
||||
"\n"
|
||||
"# The top-level build directory on which CMake was run.\n"
|
||||
"CMAKE_BINARY_DIR = "
|
||||
<< this->ConvertToOutputFormat(this->GetBinaryDirectory(),
|
||||
cmOutputConverter::SHELL)
|
||||
<< "\n"
|
||||
<< "\n";
|
||||
/* clang-format on */
|
||||
"\n";
|
||||
}
|
||||
|
||||
void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsTop(
|
||||
@@ -706,7 +691,7 @@ void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsTop(
|
||||
{
|
||||
this->WriteDivider(makefileStream);
|
||||
makefileStream << "# Special targets provided by cmake.\n"
|
||||
<< "\n";
|
||||
"\n";
|
||||
|
||||
std::vector<std::string> no_commands;
|
||||
std::vector<std::string> no_depends;
|
||||
@@ -740,31 +725,20 @@ void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsTop(
|
||||
// Switch on WMake feature, if an error or interrupt occurs during
|
||||
// makefile processing, the current target being made may be deleted
|
||||
// without prompting (the same as command line -e option).
|
||||
/* clang-format off */
|
||||
makefileStream <<
|
||||
"\n"
|
||||
".ERASE\n"
|
||||
"\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
makefileStream << "\n"
|
||||
".ERASE\n"
|
||||
"\n";
|
||||
}
|
||||
if (this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE")) {
|
||||
/* clang-format off */
|
||||
makefileStream
|
||||
<< "# Produce verbose output by default.\n"
|
||||
<< "VERBOSE = 1\n"
|
||||
<< "\n";
|
||||
/* clang-format on */
|
||||
makefileStream << "# Produce verbose output by default.\n"
|
||||
"VERBOSE = 1\n"
|
||||
"\n";
|
||||
}
|
||||
if (this->IsWatcomWMake()) {
|
||||
/* clang-format off */
|
||||
makefileStream <<
|
||||
"!ifndef VERBOSE\n"
|
||||
".SILENT\n"
|
||||
"!endif\n"
|
||||
"\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
makefileStream << "!ifndef VERBOSE\n"
|
||||
".SILENT\n"
|
||||
"!endif\n"
|
||||
"\n";
|
||||
} else {
|
||||
makefileStream << "# Command-line flag to silence nested $(MAKE).\n"
|
||||
"$(VERBOSE)MAKESILENT = -s\n"
|
||||
@@ -809,7 +783,7 @@ void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsBottom(
|
||||
{
|
||||
this->WriteDivider(makefileStream);
|
||||
makefileStream << "# Special targets to cleanup operation of make.\n"
|
||||
<< "\n";
|
||||
"\n";
|
||||
|
||||
// Write special "cmake_check_build_system" target to run cmake with
|
||||
// the --check-build-system flag.
|
||||
@@ -1114,7 +1088,7 @@ void cmLocalUnixMakefileGenerator3::AppendCleanCommand(
|
||||
fout << "file(REMOVE_RECURSE\n";
|
||||
for (std::string const& file : files) {
|
||||
std::string fc = this->MaybeRelativeToCurBinDir(file);
|
||||
fout << " " << cmOutputConverter::EscapeForCMake(fc) << "\n";
|
||||
fout << " " << cmOutputConverter::EscapeForCMake(fc) << '\n';
|
||||
}
|
||||
fout << ")\n";
|
||||
}
|
||||
@@ -1134,11 +1108,11 @@ void cmLocalUnixMakefileGenerator3::AppendCleanCommand(
|
||||
languages, this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE"));
|
||||
/* clang-format off */
|
||||
fout << "\n"
|
||||
<< "# Per-language clean rules from dependency scanning.\n"
|
||||
<< "foreach(lang " << cmJoin(languages, " ") << ")\n"
|
||||
<< " include(" << this->GetTargetDirectory(target)
|
||||
"# Per-language clean rules from dependency scanning.\n"
|
||||
"foreach(lang " << cmJoin(languages, " ") << ")\n"
|
||||
" include(" << this->GetTargetDirectory(target)
|
||||
<< "/cmake_clean_${lang}.cmake OPTIONAL)\n"
|
||||
<< "endforeach()\n";
|
||||
"endforeach()\n";
|
||||
/* clang-format on */
|
||||
}
|
||||
}
|
||||
@@ -1173,7 +1147,7 @@ void cmLocalUnixMakefileGenerator3::AppendDirectoryCleanCommand(
|
||||
for (std::string const& cfl : cleanFiles) {
|
||||
std::string fc = rootLG->MaybeRelativeToCurBinDir(
|
||||
cmSystemTools::CollapseFullPath(cfl, currentBinaryDir));
|
||||
fout << " " << cmOutputConverter::EscapeForCMake(fc) << "\n";
|
||||
fout << " " << cmOutputConverter::EscapeForCMake(fc) << '\n';
|
||||
}
|
||||
fout << ")\n";
|
||||
}
|
||||
@@ -1235,17 +1209,14 @@ void cmLocalUnixMakefileGenerator3::AppendEcho(
|
||||
"@$(CMAKE_COMMAND) -E cmake_echo_color \"--switch=$(COLOR)\" ",
|
||||
color_name);
|
||||
if (progress) {
|
||||
cmd += "--progress-dir=";
|
||||
cmd += this->ConvertToOutputFormat(progress->Dir,
|
||||
cmOutputConverter::SHELL);
|
||||
cmd += " ";
|
||||
cmd += "--progress-num=";
|
||||
cmd += progress->Arg;
|
||||
cmd += " ";
|
||||
cmd = cmStrCat(cmd, "--progress-dir=",
|
||||
this->ConvertToOutputFormat(
|
||||
progress->Dir, cmOutputConverter::SHELL),
|
||||
" --progress-num=", progress->Arg, ' ');
|
||||
}
|
||||
cmd += this->EscapeForShell(line);
|
||||
}
|
||||
commands.push_back(std::move(cmd));
|
||||
commands.emplace_back(std::move(cmd));
|
||||
}
|
||||
|
||||
// Reset the line to empty.
|
||||
@@ -1586,7 +1557,7 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(
|
||||
#ifndef CMAKE_BOOTSTRAP
|
||||
else if (lang == "Fortran") {
|
||||
ruleFileStream << "# Note that incremental build could trigger "
|
||||
<< "a call to cmake_copy_f90_mod on each re-build\n";
|
||||
"a call to cmake_copy_f90_mod on each re-build\n";
|
||||
scanner = cm::make_unique<cmDependsFortran>(this);
|
||||
} else if (lang == "Java") {
|
||||
scanner = cm::make_unique<cmDependsJava>();
|
||||
@@ -1674,7 +1645,7 @@ void cmLocalUnixMakefileGenerator3::WriteLocalAllRules(
|
||||
// Write all global targets
|
||||
this->WriteDivider(ruleFileStream);
|
||||
ruleFileStream << "# Targets provided globally by CMake.\n"
|
||||
<< "\n";
|
||||
"\n";
|
||||
const auto& targets = this->GetGeneratorTargets();
|
||||
for (const auto& gt : targets) {
|
||||
if (gt->GetType() == cmStateEnums::GLOBAL_TARGET) {
|
||||
@@ -1902,8 +1873,8 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
{
|
||||
// To enable dependencies filtering
|
||||
cmakefileStream << "\n"
|
||||
<< "# Consider dependencies only in project.\n"
|
||||
<< "set(CMAKE_DEPENDS_IN_PROJECT_ONLY "
|
||||
"# Consider dependencies only in project.\n"
|
||||
"set(CMAKE_DEPENDS_IN_PROJECT_ONLY "
|
||||
<< (cmIsOn(this->Makefile->GetSafeDefinition(
|
||||
"CMAKE_DEPENDS_IN_PROJECT_ONLY"))
|
||||
? "ON"
|
||||
@@ -1920,8 +1891,8 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
|
||||
// list the languages
|
||||
cmakefileStream << "# The set of languages for which implicit "
|
||||
"dependencies are needed:\n";
|
||||
cmakefileStream << "set(CMAKE_DEPENDS_LANGUAGES\n";
|
||||
"dependencies are needed:\n"
|
||||
"set(CMAKE_DEPENDS_LANGUAGES\n";
|
||||
for (auto const& implicitLang : implicitLangs) {
|
||||
cmakefileStream << " \"" << implicitLang.first << "\"\n";
|
||||
if (requireFortran && implicitLang.first == "Fortran"_s) {
|
||||
@@ -1940,14 +1911,14 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
for (auto const& implicitLang : implicitLangs) {
|
||||
const auto& lang = implicitLang.first;
|
||||
|
||||
cmakefileStream << "set(CMAKE_DEPENDS_CHECK_" << lang << "\n";
|
||||
cmakefileStream << "set(CMAKE_DEPENDS_CHECK_" << lang << '\n';
|
||||
auto const& implicitPairs = implicitLang.second;
|
||||
|
||||
// for each file pair
|
||||
for (auto const& implicitPair : implicitPairs) {
|
||||
for (auto const& di : implicitPair.second) {
|
||||
cmakefileStream << " \"" << di << "\" ";
|
||||
cmakefileStream << "\"" << implicitPair.first << "\"\n";
|
||||
cmakefileStream << " \"" << di << "\" \"" << implicitPair.first
|
||||
<< "\"\n";
|
||||
}
|
||||
}
|
||||
cmakefileStream << " )\n";
|
||||
@@ -1966,32 +1937,31 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
std::string smodExt =
|
||||
this->Makefile->GetSafeDefinition("CMAKE_Fortran_SUBMODULE_EXT");
|
||||
cmakefileStream << "set(CMAKE_Fortran_SUBMODULE_SEP \"" << smodSep
|
||||
<< "\")\n";
|
||||
cmakefileStream << "set(CMAKE_Fortran_SUBMODULE_EXT \"" << smodExt
|
||||
<< "\")\n";
|
||||
<< "\")\n"
|
||||
"set(CMAKE_Fortran_SUBMODULE_EXT \""
|
||||
<< smodExt << "\")\n";
|
||||
}
|
||||
|
||||
// Build a list of preprocessor definitions for the target.
|
||||
std::set<std::string> defines;
|
||||
this->GetTargetDefines(target, this->GetConfigName(), lang, defines);
|
||||
if (!defines.empty()) {
|
||||
/* clang-format off */
|
||||
cmakefileStream
|
||||
<< "\n"
|
||||
<< "# Preprocessor definitions for this target.\n"
|
||||
<< "set(CMAKE_TARGET_DEFINITIONS_" << lang << "\n";
|
||||
/* clang-format on */
|
||||
cmakefileStream << "\n"
|
||||
"# Preprocessor definitions for this target.\n"
|
||||
"set(CMAKE_TARGET_DEFINITIONS_"
|
||||
<< lang << '\n';
|
||||
for (std::string const& define : defines) {
|
||||
cmakefileStream << " " << cmOutputConverter::EscapeForCMake(define)
|
||||
<< "\n";
|
||||
<< '\n';
|
||||
}
|
||||
cmakefileStream << " )\n";
|
||||
}
|
||||
|
||||
// Target-specific include directories:
|
||||
cmakefileStream << "\n"
|
||||
<< "# The include file search paths:\n";
|
||||
cmakefileStream << "set(CMAKE_" << lang << "_TARGET_INCLUDE_PATH\n";
|
||||
"# The include file search paths:\n"
|
||||
"set(CMAKE_"
|
||||
<< lang << "_TARGET_INCLUDE_PATH\n";
|
||||
std::vector<std::string> includes;
|
||||
|
||||
this->GetIncludeDirectories(includes, target, lang,
|
||||
@@ -2023,7 +1993,7 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
cmakefileStream << "\nset(CMAKE_INCLUDE_TRANSFORMS\n";
|
||||
for (std::string const& tr : transformRules) {
|
||||
cmakefileStream << " " << cmOutputConverter::EscapeForCMake(tr)
|
||||
<< "\n";
|
||||
<< '\n';
|
||||
}
|
||||
cmakefileStream << " )\n";
|
||||
}
|
||||
@@ -2033,8 +2003,8 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
this->GetImplicitDepends(target, cmDependencyScannerKind::Compiler);
|
||||
|
||||
// list the dependency files managed by the compiler
|
||||
cmakefileStream << "\n# The set of dependency files which are needed:\n";
|
||||
cmakefileStream << "set(CMAKE_DEPENDS_DEPENDENCY_FILES\n";
|
||||
cmakefileStream << "\n# The set of dependency files which are needed:\n"
|
||||
"set(CMAKE_DEPENDS_DEPENDENCY_FILES\n";
|
||||
for (auto const& compilerLang : compilerLangs) {
|
||||
auto const& compilerPairs = compilerLang.second;
|
||||
if (compilerLang.first == "CUSTOM"_s) {
|
||||
@@ -2078,9 +2048,12 @@ void cmLocalUnixMakefileGenerator3::WriteDependLanguageInfo(
|
||||
void cmLocalUnixMakefileGenerator3::WriteDisclaimer(std::ostream& os)
|
||||
{
|
||||
os << "# CMAKE generated file: DO NOT EDIT!\n"
|
||||
<< "# Generated by \"" << this->GlobalGenerator->GetName() << "\""
|
||||
<< " Generator, CMake Version " << cmVersion::GetMajorVersion() << "."
|
||||
<< cmVersion::GetMinorVersion() << "\n\n";
|
||||
"# Generated by \""
|
||||
<< this->GlobalGenerator->GetName()
|
||||
<< "\""
|
||||
" Generator, CMake Version "
|
||||
<< cmVersion::GetMajorVersion() << '.' << cmVersion::GetMinorVersion()
|
||||
<< "\n\n";
|
||||
}
|
||||
|
||||
std::string cmLocalUnixMakefileGenerator3::GetRecursiveMakeCall(
|
||||
|
||||
@@ -185,7 +185,7 @@ void cmLocalVisualStudio7Generator::WriteStampFiles()
|
||||
listFiles.erase(new_end, listFiles.end());
|
||||
|
||||
for (const std::string& lf : listFiles) {
|
||||
depFile << lf << "\n";
|
||||
depFile << lf << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -571,7 +571,7 @@ public:
|
||||
void Start(const char* tool)
|
||||
{
|
||||
this->First = true;
|
||||
this->Stream << "\t\t\t<Tool\n\t\t\t\tName=\"" << tool << "\"";
|
||||
this->Stream << "\t\t\t<Tool\n\t\t\t\tName=\"" << tool << '"';
|
||||
}
|
||||
void Finish()
|
||||
{
|
||||
@@ -579,7 +579,7 @@ public:
|
||||
if (!this->First) {
|
||||
std::string finishScript =
|
||||
this->LG->FinishConstructScript(VsProjectType::vcxproj);
|
||||
this->Stream << this->LG->EscapeForXML(finishScript) << "\"";
|
||||
this->Stream << this->LG->EscapeForXML(finishScript) << '"';
|
||||
}
|
||||
|
||||
this->Stream << "/>\n";
|
||||
@@ -627,8 +627,8 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
|
||||
fout << "\t\t<Configuration\n"
|
||||
<< "\t\t\tName=\"" << configName << "|" << gg->GetPlatformName()
|
||||
<< "\"\n";
|
||||
"\t\t\tName=\""
|
||||
<< configName << '|' << gg->GetPlatformName() << "\"\n";
|
||||
// This is an internal type to Visual Studio, it seems that:
|
||||
// 4 == static library
|
||||
// 2 == dll
|
||||
@@ -777,20 +777,20 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
target->GetType() == cmStateEnums::OBJECT_LIBRARY
|
||||
? intermediateDir
|
||||
: target->GetDirectory(configName);
|
||||
/* clang-format off */
|
||||
fout << "\t\t\tOutputDirectory=\""
|
||||
<< this->ConvertToXMLOutputPathSingle(outDir) << "\"\n";
|
||||
/* clang-format on */
|
||||
}
|
||||
|
||||
/* clang-format off */
|
||||
fout << "\t\t\tIntermediateDirectory=\""
|
||||
<< this->ConvertToXMLOutputPath(intermediateDir)
|
||||
<< "\"\n"
|
||||
<< "\t\t\tConfigurationType=\"" << configType << "\"\n"
|
||||
<< "\t\t\tUseOfMFC=\"" << mfcFlag << "\"\n"
|
||||
<< "\t\t\tATLMinimizesCRunTimeLibraryUsage=\"false\"\n";
|
||||
/* clang-format on */
|
||||
"\t\t\tConfigurationType=\""
|
||||
<< configType
|
||||
<< "\"\n"
|
||||
"\t\t\tUseOfMFC=\""
|
||||
<< mfcFlag
|
||||
<< "\"\n"
|
||||
"\t\t\tATLMinimizesCRunTimeLibraryUsage=\"false\"\n";
|
||||
|
||||
if (this->FortranProject) {
|
||||
// Intel Fortran >= 15.0 uses TargetName property.
|
||||
@@ -826,7 +826,8 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
tool = "VFFortranCompilerTool";
|
||||
}
|
||||
fout << "\t\t\t<Tool\n"
|
||||
<< "\t\t\t\tName=\"" << tool << "\"\n";
|
||||
"\t\t\t\tName=\""
|
||||
<< tool << "\"\n";
|
||||
if (this->FortranProject) {
|
||||
cmValue target_mod_dir = target->GetProperty("Fortran_MODULE_DIRECTORY");
|
||||
std::string modDir;
|
||||
@@ -854,39 +855,25 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
fout << "/>\n"; // end of <Tool Name=VCCLCompilerTool
|
||||
if (gg->IsMarmasmEnabled() && !this->FortranProject) {
|
||||
Options marmasmOptions(this, Options::MarmasmCompiler, nullptr, nullptr);
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\"MARMASM\"\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
fout << "\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\"MARMASM\"\n";
|
||||
targetOptions.OutputAdditionalIncludeDirectories(fout, 4, "ASM_MARMASM");
|
||||
// Use same preprocessor definitions as VCCLCompilerTool.
|
||||
targetOptions.OutputPreprocessorDefinitions(fout, 4, "ASM_MARMASM");
|
||||
marmasmOptions.OutputFlagMap(fout, 4);
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t\t\t\tObjectFile=\"$(IntDir)\\\"\n"
|
||||
"\t\t\t/>\n";
|
||||
/* clang-format on */
|
||||
fout << "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n"
|
||||
"\t\t\t/>\n";
|
||||
}
|
||||
if (gg->IsMasmEnabled() && !this->FortranProject) {
|
||||
Options masmOptions(this, Options::MasmCompiler, nullptr, nullptr);
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\"MASM\"\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
fout << "\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\"MASM\"\n";
|
||||
targetOptions.OutputAdditionalIncludeDirectories(fout, 4, "ASM_MASM");
|
||||
// Use same preprocessor definitions as VCCLCompilerTool.
|
||||
targetOptions.OutputPreprocessorDefinitions(fout, 4, "ASM_MASM");
|
||||
masmOptions.OutputFlagMap(fout, 4);
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t\t\t\tObjectFile=\"$(IntDir)\\\"\n"
|
||||
"\t\t\t/>\n";
|
||||
/* clang-format on */
|
||||
fout << "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n"
|
||||
"\t\t\t/>\n";
|
||||
}
|
||||
tool = "VCCustomBuildTool";
|
||||
if (this->FortranProject) {
|
||||
@@ -916,13 +903,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
} else {
|
||||
fout << "\t\t\t\tTargetEnvironment=\"1\"\n";
|
||||
}
|
||||
fout << "\t\t\t\tGenerateStublessProxies=\"true\"\n";
|
||||
fout << "\t\t\t\tTypeLibraryName=\"$(InputName).tlb\"\n";
|
||||
fout << "\t\t\t\tOutputDirectory=\"$(IntDir)\"\n";
|
||||
fout << "\t\t\t\tHeaderFileName=\"$(InputName).h\"\n";
|
||||
fout << "\t\t\t\tDLLDataFileName=\"\"\n";
|
||||
fout << "\t\t\t\tInterfaceIdentifierFileName=\"$(InputName)_i.c\"\n";
|
||||
fout << "\t\t\t\tProxyFileName=\"$(InputName)_p.c\"/>\n";
|
||||
fout << "\t\t\t\tGenerateStublessProxies=\"true\"\n"
|
||||
"\t\t\t\tTypeLibraryName=\"$(InputName).tlb\"\n"
|
||||
"\t\t\t\tOutputDirectory=\"$(IntDir)\"\n"
|
||||
"\t\t\t\tHeaderFileName=\"$(InputName).h\"\n"
|
||||
"\t\t\t\tDLLDataFileName=\"\"\n"
|
||||
"\t\t\t\tInterfaceIdentifierFileName=\"$(InputName)_i.c\"\n"
|
||||
"\t\t\t\tProxyFileName=\"$(InputName)_p.c\"/>\n";
|
||||
// end of <Tool Name=VCMIDLTool
|
||||
|
||||
// Add manifest tool settings.
|
||||
@@ -931,11 +918,9 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
if (this->FortranProject) {
|
||||
manifestTool = "VFManifestTool";
|
||||
}
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\"" << manifestTool << "\"";
|
||||
/* clang-format on */
|
||||
fout << "\t\t\t<Tool\n"
|
||||
"\t\t\t\tName=\""
|
||||
<< manifestTool << '"';
|
||||
|
||||
std::vector<cmSourceFile const*> manifest_srcs;
|
||||
target->GetManifests(manifest_srcs, configName);
|
||||
@@ -943,9 +928,9 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
|
||||
fout << "\n\t\t\t\tAdditionalManifestFiles=\"";
|
||||
for (cmSourceFile const* manifest : manifest_srcs) {
|
||||
std::string m = manifest->GetFullPath();
|
||||
fout << this->ConvertToXMLOutputPath(m) << ";";
|
||||
fout << this->ConvertToXMLOutputPath(m) << ';';
|
||||
}
|
||||
fout << "\"";
|
||||
fout << '"';
|
||||
}
|
||||
|
||||
// Check if we need the FAT32 workaround.
|
||||
@@ -1038,8 +1023,10 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
const char* tool =
|
||||
this->FortranProject ? "VFLibrarianTool" : "VCLibrarianTool";
|
||||
fout << "\t\t\t<Tool\n"
|
||||
<< "\t\t\t\tName=\"" << tool << "\"\n";
|
||||
fout << "\t\t\t\tOutputFile=\""
|
||||
"\t\t\t\tName=\""
|
||||
<< tool
|
||||
<< "\"\n"
|
||||
"\t\t\t\tOutputFile=\""
|
||||
<< this->ConvertToXMLOutputPathSingle(libpath) << "\"/>\n";
|
||||
break;
|
||||
}
|
||||
@@ -1052,7 +1039,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
tool = "VFLibrarianTool";
|
||||
}
|
||||
fout << "\t\t\t<Tool\n"
|
||||
<< "\t\t\t\tName=\"" << tool << "\"\n";
|
||||
"\t\t\t\tName=\""
|
||||
<< tool << "\"\n";
|
||||
|
||||
if (this->FortranProject) {
|
||||
std::ostringstream libdeps;
|
||||
@@ -1104,7 +1092,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
tool = "VFLinkerTool";
|
||||
}
|
||||
fout << "\t\t\t<Tool\n"
|
||||
<< "\t\t\t\tName=\"" << tool << "\"\n";
|
||||
"\t\t\t\tName=\""
|
||||
<< tool << "\"\n";
|
||||
if (!gg->NeedLinkLibraryDependencies(target)) {
|
||||
fout << "\t\t\t\tLinkLibraryDependencies=\"false\"\n";
|
||||
}
|
||||
@@ -1115,7 +1104,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
if (this->FortranProject) {
|
||||
this->Internal->OutputObjects(fout, target, configName, " ");
|
||||
}
|
||||
fout << " ";
|
||||
fout << ' ';
|
||||
this->Internal->OutputLibraries(fout, cli.GetItems());
|
||||
fout << "\"\n";
|
||||
temp =
|
||||
@@ -1189,7 +1178,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
tool = "VFLinkerTool";
|
||||
}
|
||||
fout << "\t\t\t<Tool\n"
|
||||
<< "\t\t\t\tName=\"" << tool << "\"\n";
|
||||
"\t\t\t\tName=\""
|
||||
<< tool << "\"\n";
|
||||
if (!gg->NeedLinkLibraryDependencies(target)) {
|
||||
fout << "\t\t\t\tLinkLibraryDependencies=\"false\"\n";
|
||||
}
|
||||
@@ -1217,7 +1207,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
fout << "\"\n";
|
||||
std::string path = this->ConvertToXMLOutputPathSingle(
|
||||
target->GetPDBDirectory(configName));
|
||||
fout << "\t\t\t\tProgramDatabaseFile=\"" << path << "/"
|
||||
fout << "\t\t\t\tProgramDatabaseFile=\"" << path << '/'
|
||||
<< targetNames.PDB << "\"\n";
|
||||
if (targetOptions.UsingDebugInfo()) {
|
||||
fout << "\t\t\t\tGenerateDebugInformation=\"true\"\n";
|
||||
@@ -1242,7 +1232,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(
|
||||
std::string stackVar = cmStrCat("CMAKE_", linkLanguage, "_STACK_SIZE");
|
||||
cmValue stackVal = this->Makefile->GetDefinition(stackVar);
|
||||
if (stackVal) {
|
||||
fout << "\t\t\t\tStackReserveSize=\"" << *stackVal << "\"";
|
||||
fout << "\t\t\t\tStackReserveSize=\"" << *stackVal << '"';
|
||||
}
|
||||
temp = cmStrCat(
|
||||
target->GetDirectory(configName, cmStateEnums::ImportLibraryArtifact),
|
||||
@@ -1774,14 +1764,15 @@ bool cmLocalVisualStudio7Generator::WriteGroup(
|
||||
for (auto const& fci : fcinfo.FileConfigMap) {
|
||||
cmLVS7GFileConfig const& fc = fci.second;
|
||||
fout << "\t\t\t\t<FileConfiguration\n"
|
||||
<< "\t\t\t\t\tName=\"" << fci.first << "|"
|
||||
<< gg->GetPlatformName() << "\"";
|
||||
"\t\t\t\t\tName=\""
|
||||
<< fci.first << '|' << gg->GetPlatformName() << '"';
|
||||
if (fc.ExcludedFromBuild) {
|
||||
fout << " ExcludedFromBuild=\"true\"";
|
||||
}
|
||||
fout << ">\n";
|
||||
fout << "\t\t\t\t\t<Tool\n"
|
||||
<< "\t\t\t\t\tName=\"" << aCompilerTool << "\"\n";
|
||||
fout << ">\n"
|
||||
"\t\t\t\t\t<Tool\n"
|
||||
"\t\t\t\t\tName=\""
|
||||
<< aCompilerTool << "\"\n";
|
||||
if (!fc.CompileFlags.empty() || !fc.CompileDefs.empty() ||
|
||||
!fc.CompileDefsConfig.empty() || !fc.IncludeDirs.empty()) {
|
||||
Options::Tool tool = Options::Compiler;
|
||||
@@ -1814,7 +1805,7 @@ bool cmLocalVisualStudio7Generator::WriteGroup(
|
||||
<< "\"\n";
|
||||
}
|
||||
fout << "\t\t\t\t\t/>\n"
|
||||
<< "\t\t\t\t</FileConfiguration>\n";
|
||||
"\t\t\t\t</FileConfiguration>\n";
|
||||
}
|
||||
}
|
||||
fout << "\t\t\t</File>\n";
|
||||
@@ -1853,13 +1844,15 @@ void cmLocalVisualStudio7Generator::WriteCustomRule(
|
||||
for (std::string const& config : configs) {
|
||||
cmCustomCommandGenerator ccg(command, config, this);
|
||||
cmLVS7GFileConfig const& fc = fcinfo.FileConfigMap[config];
|
||||
fout << "\t\t\t\t<FileConfiguration\n";
|
||||
fout << "\t\t\t\t\tName=\"" << config << "|" << gg->GetPlatformName()
|
||||
<< "\">\n";
|
||||
fout << "\t\t\t\t<FileConfiguration\n"
|
||||
"\t\t\t\t\tName=\""
|
||||
<< config << '|' << gg->GetPlatformName() << "\">\n";
|
||||
if (!fc.CompileFlags.empty()) {
|
||||
fout << "\t\t\t\t\t<Tool\n"
|
||||
<< "\t\t\t\t\tName=\"" << compileTool << "\"\n"
|
||||
<< "\t\t\t\t\tAdditionalOptions=\""
|
||||
"\t\t\t\t\tName=\""
|
||||
<< compileTool
|
||||
<< "\"\n"
|
||||
"\t\t\t\t\tAdditionalOptions=\""
|
||||
<< this->EscapeForXML(fc.CompileFlags) << "\"/>\n";
|
||||
}
|
||||
|
||||
@@ -1871,12 +1864,12 @@ void cmLocalVisualStudio7Generator::WriteCustomRule(
|
||||
script += this->FinishConstructScript(VsProjectType::vcxproj);
|
||||
/* clang-format off */
|
||||
fout << "\t\t\t\t\t<Tool\n"
|
||||
<< "\t\t\t\t\tName=\"" << customTool << "\"\n"
|
||||
"\t\t\t\t\tName=\"" << customTool << "\"\n"
|
||||
<< "\t\t\t\t\tDescription=\""
|
||||
<< this->EscapeForXML(comment) << "\"\n"
|
||||
<< "\t\t\t\t\tCommandLine=\""
|
||||
"\t\t\t\t\tCommandLine=\""
|
||||
<< this->EscapeForXML(script) << "\"\n"
|
||||
<< "\t\t\t\t\tAdditionalDependencies=\"";
|
||||
"\t\t\t\t\tAdditionalDependencies=\"";
|
||||
/* clang-format on */
|
||||
if (ccg.GetDepends().empty()) {
|
||||
// There are no real dependencies. Produce an artificial one to
|
||||
@@ -1896,8 +1889,8 @@ void cmLocalVisualStudio7Generator::WriteCustomRule(
|
||||
}
|
||||
}
|
||||
}
|
||||
fout << "\"\n";
|
||||
fout << "\t\t\t\t\tOutputs=\"";
|
||||
fout << "\"\n"
|
||||
"\t\t\t\t\tOutputs=\"";
|
||||
if (ccg.GetOutputs().empty()) {
|
||||
fout << source << "_force";
|
||||
} else {
|
||||
@@ -1908,8 +1901,8 @@ void cmLocalVisualStudio7Generator::WriteCustomRule(
|
||||
sep = ";";
|
||||
}
|
||||
}
|
||||
fout << "\"/>\n";
|
||||
fout << "\t\t\t\t</FileConfiguration>\n";
|
||||
fout << "\"/>\n"
|
||||
"\t\t\t\t</FileConfiguration>\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1917,11 +1910,11 @@ void cmLocalVisualStudio7Generator::WriteVCProjBeginGroup(std::ostream& fout,
|
||||
const char* group,
|
||||
const char*)
|
||||
{
|
||||
/* clang-format off */
|
||||
fout << "\t\t<Filter\n"
|
||||
<< "\t\t\tName=\"" << group << "\"\n"
|
||||
<< "\t\t\tFilter=\"\">\n";
|
||||
/* clang-format on */
|
||||
"\t\t\tName=\""
|
||||
<< group
|
||||
<< "\"\n"
|
||||
"\t\t\tFilter=\"\">\n";
|
||||
}
|
||||
|
||||
void cmLocalVisualStudio7Generator::WriteVCProjEndGroup(std::ostream& fout)
|
||||
@@ -1990,8 +1983,8 @@ void cmLocalVisualStudio7Generator::WriteProjectSCC(std::ostream& fout,
|
||||
if (vsProvider && vsLocalpath && vsProjectname) {
|
||||
/* clang-format off */
|
||||
fout << "\tSccProjectName=\"" << *vsProjectname << "\"\n"
|
||||
<< "\tSccLocalPath=\"" << *vsLocalpath << "\"\n"
|
||||
<< "\tSccProvider=\"" << *vsProvider << "\"\n";
|
||||
"\tSccLocalPath=\"" << *vsLocalpath << "\"\n"
|
||||
"\tSccProvider=\"" << *vsProvider << "\"\n";
|
||||
/* clang-format on */
|
||||
|
||||
cmValue vsAuxPath = target->GetProperty("VS_SCC_AUXPATH");
|
||||
@@ -2007,13 +2000,12 @@ void cmLocalVisualStudio7Generator::WriteProjectStartFortran(
|
||||
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
|
||||
/* clang-format off */
|
||||
fout << R"(<?xml version="1.0" encoding = ")"
|
||||
<< gg->Encoding() << "\"?>\n"
|
||||
<< "<VisualStudioProject\n"
|
||||
<< "\tProjectCreator=\"Intel Fortran\"\n"
|
||||
<< "\tVersion=\"" << gg->GetIntelProjectVersion() << "\"\n";
|
||||
/* clang-format on */
|
||||
fout << R"(<?xml version="1.0" encoding = ")" << gg->Encoding()
|
||||
<< "\"?>\n"
|
||||
"<VisualStudioProject\n"
|
||||
"\tProjectCreator=\"Intel Fortran\"\n"
|
||||
"\tVersion=\""
|
||||
<< gg->GetIntelProjectVersion() << "\"\n";
|
||||
cmValue p = target->GetProperty("VS_KEYWORD");
|
||||
const char* keyword = p ? p->c_str() : "Console Application";
|
||||
const char* projectType = nullptr;
|
||||
@@ -2050,10 +2042,10 @@ void cmLocalVisualStudio7Generator::WriteProjectStartFortran(
|
||||
this->WriteProjectSCC(fout, target);
|
||||
/* clang-format off */
|
||||
fout<< "\tKeyword=\"" << keyword << "\">\n"
|
||||
<< "\tProjectGUID=\"{" << gg->GetGUID(libName) << "}\">\n"
|
||||
<< "\t<Platforms>\n"
|
||||
<< "\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
|
||||
<< "\t</Platforms>\n";
|
||||
"\tProjectGUID=\"{" << gg->GetGUID(libName) << "}\">\n"
|
||||
"\t<Platforms>\n"
|
||||
"\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
|
||||
"\t</Platforms>\n";
|
||||
/* clang-format on */
|
||||
}
|
||||
|
||||
@@ -2069,20 +2061,20 @@ void cmLocalVisualStudio7Generator::WriteProjectStart(
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
|
||||
|
||||
/* clang-format off */
|
||||
fout << R"(<?xml version="1.0" encoding = ")"
|
||||
<< gg->Encoding() << "\"?>\n"
|
||||
<< "<VisualStudioProject\n"
|
||||
<< "\tProjectType=\"Visual C++\"\n";
|
||||
/* clang-format on */
|
||||
fout << "\tVersion=\"" << (static_cast<uint16_t>(gg->GetVersion()) / 10)
|
||||
<< ".00\"\n";
|
||||
fout << R"(<?xml version="1.0" encoding = ")" << gg->Encoding()
|
||||
<< "\"?>\n"
|
||||
"<VisualStudioProject\n"
|
||||
"\tProjectType=\"Visual C++\"\n"
|
||||
"\tVersion=\""
|
||||
<< (static_cast<uint16_t>(gg->GetVersion()) / 10) << ".00\"\n";
|
||||
cmValue p = target->GetProperty("PROJECT_LABEL");
|
||||
const std::string projLabel = p ? *p : libName;
|
||||
p = target->GetProperty("VS_KEYWORD");
|
||||
const std::string keyword = p ? *p : "Win32Proj";
|
||||
fout << "\tName=\"" << projLabel << "\"\n";
|
||||
fout << "\tProjectGUID=\"{" << gg->GetGUID(libName) << "}\"\n";
|
||||
fout << "\tName=\"" << projLabel
|
||||
<< "\"\n"
|
||||
"\tProjectGUID=\"{"
|
||||
<< gg->GetGUID(libName) << "}\"\n";
|
||||
this->WriteProjectSCC(fout, target);
|
||||
if (cmValue targetFrameworkVersion =
|
||||
target->GetProperty("VS_DOTNET_TARGET_FRAMEWORK_VERSION")) {
|
||||
@@ -2090,31 +2082,23 @@ void cmLocalVisualStudio7Generator::WriteProjectStart(
|
||||
}
|
||||
/* clang-format off */
|
||||
fout << "\tKeyword=\"" << keyword << "\">\n"
|
||||
<< "\t<Platforms>\n"
|
||||
<< "\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
|
||||
<< "\t</Platforms>\n";
|
||||
"\t<Platforms>\n"
|
||||
"\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
|
||||
"\t</Platforms>\n";
|
||||
/* clang-format on */
|
||||
if (gg->IsMarmasmEnabled()) {
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t<ToolFiles>\n"
|
||||
"\t\t<DefaultToolFile\n"
|
||||
"\t\t\tFileName=\"marmasm.rules\"\n"
|
||||
"\t\t/>\n"
|
||||
"\t</ToolFiles>\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
fout << "\t<ToolFiles>\n"
|
||||
"\t\t<DefaultToolFile\n"
|
||||
"\t\t\tFileName=\"marmasm.rules\"\n"
|
||||
"\t\t/>\n"
|
||||
"\t</ToolFiles>\n";
|
||||
}
|
||||
if (gg->IsMasmEnabled()) {
|
||||
/* clang-format off */
|
||||
fout <<
|
||||
"\t<ToolFiles>\n"
|
||||
"\t\t<DefaultToolFile\n"
|
||||
"\t\t\tFileName=\"masm.rules\"\n"
|
||||
"\t\t/>\n"
|
||||
"\t</ToolFiles>\n"
|
||||
;
|
||||
/* clang-format on */
|
||||
fout << "\t<ToolFiles>\n"
|
||||
"\t\t<DefaultToolFile\n"
|
||||
"\t\t\tFileName=\"masm.rules\"\n"
|
||||
"\t\t/>\n"
|
||||
"\t</ToolFiles>\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2127,18 +2111,20 @@ void cmLocalVisualStudio7Generator::WriteVCProjFooter(
|
||||
if (cmHasLiteralPrefix(key, "VS_GLOBAL_")) {
|
||||
std::string name = key.substr(10);
|
||||
if (!name.empty()) {
|
||||
/* clang-format off */
|
||||
fout << "\t\t<Global\n"
|
||||
<< "\t\t\tName=\"" << name << "\"\n"
|
||||
<< "\t\t\tValue=\"" << target->GetProperty(key) << "\"\n"
|
||||
<< "\t\t/>\n";
|
||||
/* clang-format on */
|
||||
"\t\t\tName=\""
|
||||
<< name
|
||||
<< "\"\n"
|
||||
"\t\t\tValue=\""
|
||||
<< target->GetProperty(key)
|
||||
<< "\"\n"
|
||||
"\t\t/>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fout << "\t</Globals>\n"
|
||||
<< "</VisualStudioProject>\n";
|
||||
"</VisualStudioProject>\n";
|
||||
}
|
||||
|
||||
std::string cmLocalVisualStudio7Generator::EscapeForXML(const std::string& s)
|
||||
@@ -2177,10 +2163,8 @@ void cmVS7GeneratorOptions::OutputFlag(std::ostream& fout, int indent,
|
||||
fout.fill('\t');
|
||||
fout.width(indent);
|
||||
// write an empty string to get the fill level indent to print
|
||||
fout << "";
|
||||
fout << flag << "=\"";
|
||||
fout << cmLocalVisualStudio7GeneratorEscapeForXML(content);
|
||||
fout << "\"\n";
|
||||
fout << "" << flag << "=\""
|
||||
<< cmLocalVisualStudio7GeneratorEscapeForXML(content) << "\"\n";
|
||||
}
|
||||
|
||||
// This class is used to parse an existing vs 7 project
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "cmOutputConverter.h"
|
||||
#include "cmSourceFile.h"
|
||||
#include "cmStateTypes.h"
|
||||
#include "cmStringAlgorithms.h"
|
||||
#include "cmSystemTools.h"
|
||||
#include "cmValue.h"
|
||||
|
||||
@@ -136,12 +137,12 @@ std::string cmLocalVisualStudioGenerator::ConstructScript(
|
||||
std::string newline;
|
||||
|
||||
// Line to check for error between commands.
|
||||
std::string check_error = newline_text;
|
||||
std::string check_error;
|
||||
if (useLocal) {
|
||||
check_error += "if %errorlevel% neq 0 goto :cmEnd";
|
||||
check_error = cmStrCat(newline_text, "if %errorlevel% neq 0 goto :cmEnd");
|
||||
} else {
|
||||
check_error += "if errorlevel 1 goto ";
|
||||
check_error += this->GetReportErrorLabel();
|
||||
check_error = cmStrCat(newline_text, "if errorlevel 1 goto ",
|
||||
this->GetReportErrorLabel());
|
||||
}
|
||||
|
||||
// Store the script in a string.
|
||||
@@ -149,26 +150,22 @@ std::string cmLocalVisualStudioGenerator::ConstructScript(
|
||||
|
||||
// Open a local context.
|
||||
if (useLocal) {
|
||||
script += newline;
|
||||
script = cmStrCat(newline, "setlocal");
|
||||
newline = newline_text;
|
||||
script += "setlocal";
|
||||
}
|
||||
|
||||
if (!workingDirectory.empty()) {
|
||||
// Change the working directory.
|
||||
script += newline;
|
||||
script = cmStrCat(script, newline, "cd ",
|
||||
this->ConvertToOutputFormat(workingDirectory, SHELL),
|
||||
check_error);
|
||||
newline = newline_text;
|
||||
script += "cd ";
|
||||
script += this->ConvertToOutputFormat(workingDirectory, SHELL);
|
||||
script += check_error;
|
||||
|
||||
// Change the working drive.
|
||||
if (workingDirectory.size() > 1 && workingDirectory[1] == ':') {
|
||||
script += newline;
|
||||
script = cmStrCat(script, newline, workingDirectory[0],
|
||||
workingDirectory[1], check_error);
|
||||
newline = newline_text;
|
||||
script += workingDirectory[0];
|
||||
script += workingDirectory[1];
|
||||
script += check_error;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,11 +175,8 @@ std::string cmLocalVisualStudioGenerator::ConstructScript(
|
||||
cmValue extraPath =
|
||||
this->Makefile->GetDefinition("CMAKE_MSVCIDE_RUN_PATH");
|
||||
if (extraPath) {
|
||||
script += newline;
|
||||
script = cmStrCat(script, newline, "set PATH=", *extraPath, ";%PATH%");
|
||||
newline = newline_text;
|
||||
script += "set PATH=";
|
||||
script += *extraPath;
|
||||
script += ";%PATH%";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,19 +221,23 @@ std::string cmLocalVisualStudioGenerator::ConstructScript(
|
||||
|
||||
// Close the local context.
|
||||
if (useLocal) {
|
||||
script += newline;
|
||||
script += ":cmEnd";
|
||||
script += newline;
|
||||
script += "endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone";
|
||||
script += newline;
|
||||
script += ":cmErrorLevel";
|
||||
script += newline;
|
||||
script += "exit /b %1";
|
||||
script += newline;
|
||||
script += ":cmDone";
|
||||
script += newline;
|
||||
script += "if %errorlevel% neq 0 goto ";
|
||||
script += this->GetReportErrorLabel();
|
||||
// clang-format off
|
||||
script = cmStrCat(
|
||||
script
|
||||
, newline
|
||||
, ":cmEnd"
|
||||
, newline
|
||||
, "endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone"
|
||||
, newline
|
||||
, ":cmErrorLevel"
|
||||
, newline
|
||||
, "exit /b %1"
|
||||
, newline
|
||||
, ":cmDone"
|
||||
, newline
|
||||
, "if %errorlevel% neq 0 goto ", this->GetReportErrorLabel()
|
||||
);
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
return script;
|
||||
|
||||
@@ -55,8 +55,9 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
||||
cmGeneratedFileStream depFileStream(
|
||||
dependFile, false, this->GlobalGenerator->GetMakefileEncoding());
|
||||
depFileStream << "# Empty custom commands generated dependencies file for "
|
||||
<< this->GeneratorTarget->GetName() << ".\n"
|
||||
<< "# This may be replaced when dependencies are built.\n";
|
||||
<< this->GeneratorTarget->GetName()
|
||||
<< ".\n"
|
||||
"# This may be replaced when dependencies are built.\n";
|
||||
}
|
||||
|
||||
std::string dependTimestamp =
|
||||
@@ -66,7 +67,7 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
|
||||
cmGeneratedFileStream depFileStream(
|
||||
dependTimestamp, false, this->GlobalGenerator->GetMakefileEncoding());
|
||||
depFileStream << "# CMAKE generated file: DO NOT EDIT!\n"
|
||||
<< "# Timestamp file for custom commands dependencies "
|
||||
"# Timestamp file for custom commands dependencies "
|
||||
"management for "
|
||||
<< this->GeneratorTarget->GetName() << ".\n";
|
||||
}
|
||||
|
||||
@@ -1273,7 +1273,7 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatements(
|
||||
build);
|
||||
}
|
||||
|
||||
this->GetImplFileStream(fileConfig) << "\n";
|
||||
this->GetImplFileStream(fileConfig) << '\n';
|
||||
}
|
||||
|
||||
void cmNinjaTargetGenerator::GenerateSwiftOutputFileMap(
|
||||
|
||||
Reference in New Issue
Block a user