mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-26 00:00:39 -05:00
Merge topic 'codegen-make'
25b43a5b7fMakefile: Enable progress messages for codegen targetaf2b340a2eMakefile: Fix per-directory codegen targetb7e6c418e3cmLocalUnixMakefileGenerator3: 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:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user