Commit f42d86f0 authored by Peter Collingbourne's avatar Peter Collingbourne Committed by Brad King

Ninja: Implement USES_TERMINAL using the console pool if available

parent f281ae01
......@@ -250,6 +250,7 @@ void
cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
const std::string& description,
const std::string& comment,
bool uses_terminal,
const cmNinjaDeps& outputs,
const cmNinjaDeps& deps,
const cmNinjaDeps& orderOnly)
......@@ -266,6 +267,10 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
cmNinjaVars vars;
vars["COMMAND"] = cmd;
vars["DESC"] = EncodeLiteral(description);
if (uses_terminal && SupportsConsolePool())
{
vars["pool"] = "console";
}
this->WriteBuild(*this->BuildFileStream,
comment,
......@@ -826,6 +831,7 @@ void cmGlobalNinjaGenerator::WriteAssumedSourceDependencies()
std::copy(i->second.begin(), i->second.end(), std::back_inserter(deps));
WriteCustomCommandBuild(/*command=*/"", /*description=*/"",
"Assume dependencies for generated source file.",
/*uses_terminal*/false,
cmNinjaDeps(1, i->first), deps);
}
}
......
......@@ -103,6 +103,7 @@ public:
void WriteCustomCommandBuild(const std::string& command,
const std::string& description,
const std::string& comment,
bool uses_terminal,
const cmNinjaDeps& outputs,
const cmNinjaDeps& deps = cmNinjaDeps(),
const cmNinjaDeps& orderOnly = cmNinjaDeps());
......
......@@ -468,6 +468,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement(
this->BuildCommandLine(cmdLines),
this->ConstructComment(ccg),
"Custom command for " + ninjaOutputs[0],
cc->GetUsesTerminal(),
ninjaOutputs,
ninjaDeps,
orderOnlyDeps);
......
......@@ -35,6 +35,8 @@ void cmNinjaUtilityTargetGenerator::Generate()
&this->GetTarget()->GetPostBuildCommands()
};
bool uses_terminal = false;
for (unsigned i = 0; i != 2; ++i) {
for (std::vector<cmCustomCommand>::const_iterator
ci = cmdLists[i]->begin(); ci != cmdLists[i]->end(); ++ci) {
......@@ -42,6 +44,8 @@ void cmNinjaUtilityTargetGenerator::Generate()
this->GetMakefile());
this->GetLocalGenerator()->AppendCustomCommandDeps(ccg, deps);
this->GetLocalGenerator()->AppendCustomCommandLines(ccg, commands);
if (ci->GetUsesTerminal())
uses_terminal = true;
}
}
......@@ -110,6 +114,7 @@ void cmNinjaUtilityTargetGenerator::Generate()
command,
desc,
"Utility command for " + this->GetTargetName(),
uses_terminal,
cmNinjaDeps(1, utilCommandName),
deps);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment