mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-07 22:59:56 -05:00
Merge topic 'cmake-compile-no-warning-as-error'
da27ff1e96Preserve --compile-no-warning-as-error in automatic CMake re-runse0b48284a1Xcode: Internally uses -S instead of -H to specify source directory Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8522
This commit is contained in:
@@ -2845,6 +2845,9 @@ void cmGlobalGenerator::AddGlobalTarget_EditCache(
|
||||
std::string edit_cmd = this->GetEditCacheCommand();
|
||||
if (!edit_cmd.empty()) {
|
||||
singleLine.push_back(std::move(edit_cmd));
|
||||
if (this->GetCMakeInstance()->GetIgnoreWarningAsError()) {
|
||||
singleLine.push_back("--compile-no-warning-as-error");
|
||||
}
|
||||
singleLine.push_back("-S$(CMAKE_SOURCE_DIR)");
|
||||
singleLine.push_back("-B$(CMAKE_BINARY_DIR)");
|
||||
gti.Message = "Running CMake cache editor...";
|
||||
@@ -2878,6 +2881,9 @@ void cmGlobalGenerator::AddGlobalTarget_RebuildCache(
|
||||
cmCustomCommandLine singleLine;
|
||||
singleLine.push_back(cmSystemTools::GetCMakeCommand());
|
||||
singleLine.push_back("--regenerate-during-build");
|
||||
if (this->GetCMakeInstance()->GetIgnoreWarningAsError()) {
|
||||
singleLine.push_back("--compile-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));
|
||||
|
||||
@@ -1816,17 +1816,21 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
||||
if (this->GlobalSettingIsOn("CMAKE_SUPPRESS_REGENERATION")) {
|
||||
return;
|
||||
}
|
||||
|
||||
cmake* cm = this->GetCMakeInstance();
|
||||
const auto& lg = this->LocalGenerators[0];
|
||||
|
||||
{
|
||||
cmNinjaRule rule("RERUN_CMAKE");
|
||||
rule.Command =
|
||||
cmStrCat(this->CMakeCmd(), " --regenerate-during-build -S",
|
||||
lg->ConvertToOutputFormat(lg->GetSourceDirectory(),
|
||||
cmOutputConverter::SHELL),
|
||||
" -B",
|
||||
lg->ConvertToOutputFormat(lg->GetBinaryDirectory(),
|
||||
cmOutputConverter::SHELL));
|
||||
rule.Command = cmStrCat(
|
||||
this->CMakeCmd(), " --regenerate-during-build",
|
||||
cm->GetIgnoreWarningAsError() ? " --compile-no-warning-as-error" : "",
|
||||
" -S",
|
||||
lg->ConvertToOutputFormat(lg->GetSourceDirectory(),
|
||||
cmOutputConverter::SHELL),
|
||||
" -B",
|
||||
lg->ConvertToOutputFormat(lg->GetBinaryDirectory(),
|
||||
cmOutputConverter::SHELL));
|
||||
rule.Description = "Re-running CMake...";
|
||||
rule.Comment = "Rule for re-running cmake.";
|
||||
rule.Generator = true;
|
||||
@@ -1850,7 +1854,6 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
||||
reBuild.Variables["pool"] = "console";
|
||||
}
|
||||
|
||||
cmake* cm = this->GetCMakeInstance();
|
||||
if (this->SupportsManifestRestat() && cm->DoWriteGlobVerifyTarget()) {
|
||||
{
|
||||
cmNinjaRule rule("VERIFY_GLOBS");
|
||||
|
||||
@@ -354,6 +354,9 @@ bool cmGlobalVisualStudio8Generator::AddCheckTarget()
|
||||
cmCustomCommandLines commandLines = cmMakeSingleCommandLine(
|
||||
{ cmSystemTools::GetCMakeCommand(), argS, argB, "--check-stamp-list",
|
||||
stampList, "--vs-solution-file", sln });
|
||||
if (cm->GetIgnoreWarningAsError()) {
|
||||
commandLines[0].emplace_back("--compile-no-warning-as-error");
|
||||
}
|
||||
|
||||
// Add the rule. Note that we cannot use the CMakeLists.txt
|
||||
// file as the main dependency because it would get
|
||||
|
||||
@@ -753,14 +753,12 @@ void cmGlobalXCodeGenerator::CreateReRunCMakeFile(
|
||||
|
||||
makefileStream << this->ConvertToRelativeForMake(checkCache)
|
||||
<< ": $(TARGETS)\n";
|
||||
makefileStream << "\t"
|
||||
<< this->ConvertToRelativeForMake(
|
||||
cmSystemTools::GetCMakeCommand())
|
||||
<< " -H"
|
||||
<< this->ConvertToRelativeForMake(root->GetSourceDirectory())
|
||||
<< " -B"
|
||||
<< this->ConvertToRelativeForMake(root->GetBinaryDirectory())
|
||||
<< "\n";
|
||||
makefileStream
|
||||
<< "\t" << this->ConvertToRelativeForMake(cmSystemTools::GetCMakeCommand())
|
||||
<< " -S" << this->ConvertToRelativeForMake(root->GetSourceDirectory())
|
||||
<< " -B" << this->ConvertToRelativeForMake(root->GetBinaryDirectory())
|
||||
<< (cm->GetIgnoreWarningAsError() ? " --compile-no-warning-as-error" : "")
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
static bool objectIdLessThan(const std::unique_ptr<cmXCodeObject>& l,
|
||||
|
||||
@@ -828,7 +828,8 @@ void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsBottom(
|
||||
}
|
||||
std::string cmakefileName = "CMakeFiles/Makefile.cmake";
|
||||
std::string runRule = cmStrCat(
|
||||
"$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) "
|
||||
"$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) ",
|
||||
cm->GetIgnoreWarningAsError() ? "--compile-no-warning-as-error " : "",
|
||||
"--check-build-system ",
|
||||
this->ConvertToOutputFormat(cmakefileName, cmOutputConverter::SHELL),
|
||||
" 0");
|
||||
@@ -1805,7 +1806,8 @@ void cmLocalUnixMakefileGenerator3::WriteLocalAllRules(
|
||||
std::string cmakefileName = "CMakeFiles/Makefile.cmake";
|
||||
{
|
||||
std::string runRule = cmStrCat(
|
||||
"$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) "
|
||||
"$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) ",
|
||||
cm->GetIgnoreWarningAsError() ? "--compile-no-warning-as-error " : "",
|
||||
"--check-build-system ",
|
||||
this->ConvertToOutputFormat(cmakefileName, cmOutputConverter::SHELL),
|
||||
" 1");
|
||||
|
||||
@@ -262,6 +262,10 @@ cmSourceFile* cmLocalVisualStudio7Generator::CreateVCProjBuildRule()
|
||||
cmCustomCommandLines commandLines =
|
||||
cmMakeSingleCommandLine({ cmSystemTools::GetCMakeCommand(), argS, argB,
|
||||
"--check-stamp-file", stampName });
|
||||
|
||||
if (cm->GetIgnoreWarningAsError()) {
|
||||
commandLines[0].emplace_back("--compile-no-warning-as-error");
|
||||
}
|
||||
std::string comment = cmStrCat("Building Custom Rule ", makefileIn);
|
||||
auto cc = cm::make_unique<cmCustomCommand>();
|
||||
cc->SetOutputs(stampName);
|
||||
|
||||
Reference in New Issue
Block a user