Ninja: Implement USES_TERMINAL using the console pool if available
This commit is contained in:
parent
f281ae01a2
commit
f42d86f0b8
|
@ -250,6 +250,7 @@ void
|
||||||
cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
|
cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
|
||||||
const std::string& description,
|
const std::string& description,
|
||||||
const std::string& comment,
|
const std::string& comment,
|
||||||
|
bool uses_terminal,
|
||||||
const cmNinjaDeps& outputs,
|
const cmNinjaDeps& outputs,
|
||||||
const cmNinjaDeps& deps,
|
const cmNinjaDeps& deps,
|
||||||
const cmNinjaDeps& orderOnly)
|
const cmNinjaDeps& orderOnly)
|
||||||
|
@ -266,6 +267,10 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
|
||||||
cmNinjaVars vars;
|
cmNinjaVars vars;
|
||||||
vars["COMMAND"] = cmd;
|
vars["COMMAND"] = cmd;
|
||||||
vars["DESC"] = EncodeLiteral(description);
|
vars["DESC"] = EncodeLiteral(description);
|
||||||
|
if (uses_terminal && SupportsConsolePool())
|
||||||
|
{
|
||||||
|
vars["pool"] = "console";
|
||||||
|
}
|
||||||
|
|
||||||
this->WriteBuild(*this->BuildFileStream,
|
this->WriteBuild(*this->BuildFileStream,
|
||||||
comment,
|
comment,
|
||||||
|
@ -826,6 +831,7 @@ void cmGlobalNinjaGenerator::WriteAssumedSourceDependencies()
|
||||||
std::copy(i->second.begin(), i->second.end(), std::back_inserter(deps));
|
std::copy(i->second.begin(), i->second.end(), std::back_inserter(deps));
|
||||||
WriteCustomCommandBuild(/*command=*/"", /*description=*/"",
|
WriteCustomCommandBuild(/*command=*/"", /*description=*/"",
|
||||||
"Assume dependencies for generated source file.",
|
"Assume dependencies for generated source file.",
|
||||||
|
/*uses_terminal*/false,
|
||||||
cmNinjaDeps(1, i->first), deps);
|
cmNinjaDeps(1, i->first), deps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,7 @@ public:
|
||||||
void WriteCustomCommandBuild(const std::string& command,
|
void WriteCustomCommandBuild(const std::string& command,
|
||||||
const std::string& description,
|
const std::string& description,
|
||||||
const std::string& comment,
|
const std::string& comment,
|
||||||
|
bool uses_terminal,
|
||||||
const cmNinjaDeps& outputs,
|
const cmNinjaDeps& outputs,
|
||||||
const cmNinjaDeps& deps = cmNinjaDeps(),
|
const cmNinjaDeps& deps = cmNinjaDeps(),
|
||||||
const cmNinjaDeps& orderOnly = cmNinjaDeps());
|
const cmNinjaDeps& orderOnly = cmNinjaDeps());
|
||||||
|
|
|
@ -468,6 +468,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement(
|
||||||
this->BuildCommandLine(cmdLines),
|
this->BuildCommandLine(cmdLines),
|
||||||
this->ConstructComment(ccg),
|
this->ConstructComment(ccg),
|
||||||
"Custom command for " + ninjaOutputs[0],
|
"Custom command for " + ninjaOutputs[0],
|
||||||
|
cc->GetUsesTerminal(),
|
||||||
ninjaOutputs,
|
ninjaOutputs,
|
||||||
ninjaDeps,
|
ninjaDeps,
|
||||||
orderOnlyDeps);
|
orderOnlyDeps);
|
||||||
|
|
|
@ -35,6 +35,8 @@ void cmNinjaUtilityTargetGenerator::Generate()
|
||||||
&this->GetTarget()->GetPostBuildCommands()
|
&this->GetTarget()->GetPostBuildCommands()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool uses_terminal = false;
|
||||||
|
|
||||||
for (unsigned i = 0; i != 2; ++i) {
|
for (unsigned i = 0; i != 2; ++i) {
|
||||||
for (std::vector<cmCustomCommand>::const_iterator
|
for (std::vector<cmCustomCommand>::const_iterator
|
||||||
ci = cmdLists[i]->begin(); ci != cmdLists[i]->end(); ++ci) {
|
ci = cmdLists[i]->begin(); ci != cmdLists[i]->end(); ++ci) {
|
||||||
|
@ -42,6 +44,8 @@ void cmNinjaUtilityTargetGenerator::Generate()
|
||||||
this->GetMakefile());
|
this->GetMakefile());
|
||||||
this->GetLocalGenerator()->AppendCustomCommandDeps(ccg, deps);
|
this->GetLocalGenerator()->AppendCustomCommandDeps(ccg, deps);
|
||||||
this->GetLocalGenerator()->AppendCustomCommandLines(ccg, commands);
|
this->GetLocalGenerator()->AppendCustomCommandLines(ccg, commands);
|
||||||
|
if (ci->GetUsesTerminal())
|
||||||
|
uses_terminal = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +114,7 @@ void cmNinjaUtilityTargetGenerator::Generate()
|
||||||
command,
|
command,
|
||||||
desc,
|
desc,
|
||||||
"Utility command for " + this->GetTargetName(),
|
"Utility command for " + this->GetTargetName(),
|
||||||
|
uses_terminal,
|
||||||
cmNinjaDeps(1, utilCommandName),
|
cmNinjaDeps(1, utilCommandName),
|
||||||
deps);
|
deps);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue