Merge topic 'codegen-make'

25b43a5b7f Makefile: Enable progress messages for codegen target
af2b340a2e Makefile: Fix per-directory codegen target
b7e6c418e3 cmLocalUnixMakefileGenerator3: Simplify progress command generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10085
This commit is contained in:
Brad King
2024-12-11 15:09:53 +00:00
committed by Kitware Robot
2 changed files with 21 additions and 25 deletions
@@ -777,6 +777,10 @@ void cmGlobalUnixMakefileGenerator3::WriteConvenienceRules2(
makeTargetName = cmStrCat(localName, "/codegen");
commands.push_back(
lg.GetRecursiveMakeCall(makefileName, makeTargetName));
if (targetMessages) {
lg.AppendEcho(commands, "Finished codegen for target " + name,
cmLocalUnixMakefileGenerator3::EchoNormal, &progress);
}
this->AppendCodegenTargetDepends(depends, gtarget.get());
rootLG.WriteMakeRule(ruleFileStream, "codegen rule for target.",
makeTargetName, depends, commands, true);
+17 -25
View File
@@ -6,7 +6,6 @@
#include <cassert>
#include <cstdio>
#include <functional>
#include <sstream>
#include <utility>
#include <cm/memory>
@@ -1735,33 +1734,24 @@ void cmLocalUnixMakefileGenerator3::WriteLocalAllRules(
depends.emplace_back("cmake_check_build_system");
}
std::string progressDir =
cmStrCat(this->GetBinaryDirectory(), "/CMakeFiles");
{
std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
progCmd << this->ConvertToOutputFormat(progressDir,
cmOutputConverter::SHELL);
std::string const progressDir = this->ConvertToOutputFormat(
cmStrCat(this->GetBinaryDirectory(), "/CMakeFiles"),
cmOutputConverter::SHELL);
std::string const progressMarks = this->ConvertToOutputFormat(
this->ConvertToFullPath("/CMakeFiles/progress.marks"),
cmOutputConverter::SHELL);
std::string const progressStartCommand =
cmStrCat("$(CMAKE_COMMAND) -E cmake_progress_start ", progressDir, ' ',
progressMarks);
std::string const progressFinishCommand =
cmStrCat("$(CMAKE_COMMAND) -E cmake_progress_start ", progressDir, " 0");
std::string progressFile = "/CMakeFiles/progress.marks";
std::string progressFileNameFull = this->ConvertToFullPath(progressFile);
progCmd << " "
<< this->ConvertToOutputFormat(progressFileNameFull,
cmOutputConverter::SHELL);
commands.push_back(progCmd.str());
}
commands.emplace_back(progressStartCommand);
std::string mf2Dir = "CMakeFiles/Makefile2";
commands.push_back(this->GetRecursiveMakeCall(mf2Dir, recursiveTarget));
this->CreateCDCommand(commands, this->GetBinaryDirectory(),
this->GetCurrentBinaryDirectory());
{
std::ostringstream progCmd;
progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0
progCmd << this->ConvertToOutputFormat(progressDir,
cmOutputConverter::SHELL);
progCmd << " 0";
commands.push_back(progCmd.str());
}
commands.emplace_back(progressFinishCommand);
this->WriteMakeRule(ruleFileStream, "The main all target", "all", depends,
commands, true);
@@ -1773,9 +1763,11 @@ void cmLocalUnixMakefileGenerator3::WriteLocalAllRules(
if (regenerate) {
depends.emplace_back("cmake_check_build_system");
}
commands.emplace_back(progressStartCommand);
commands.push_back(this->GetRecursiveMakeCall(mf2Dir, recursiveTarget));
AppendEcho(commands, "Finished generating code",
cmLocalUnixMakefileGenerator3::EchoColor::EchoGenerate);
this->CreateCDCommand(commands, this->GetBinaryDirectory(),
this->GetCurrentBinaryDirectory());
commands.emplace_back(progressFinishCommand);
this->WriteMakeRule(ruleFileStream, "The main codegen target", "codegen",
depends, commands, true);
}