Ninja: Use cmNinjaBuild class for WriteBuild
This commit is contained in:
parent
df06c8d792
commit
ccf9507956
@ -1940,32 +1940,29 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
|
|||||||
cmGeneratedFileStream ddf(arg_dd);
|
cmGeneratedFileStream ddf(arg_dd);
|
||||||
ddf << "ninja_dyndep_version = 1.0\n";
|
ddf << "ninja_dyndep_version = 1.0\n";
|
||||||
|
|
||||||
for (cmDyndepObjectInfo const& object : objects) {
|
{
|
||||||
std::string const ddComment;
|
cmNinjaBuild build("dyndep");
|
||||||
std::string const ddRule = "dyndep";
|
build.Outputs.emplace_back("");
|
||||||
cmNinjaDeps ddOutputs;
|
for (cmDyndepObjectInfo const& object : objects) {
|
||||||
cmNinjaDeps ddImplicitOuts;
|
build.Outputs[0] = object.Object;
|
||||||
cmNinjaDeps ddExplicitDeps;
|
build.ImplicitOuts.clear();
|
||||||
cmNinjaDeps ddImplicitDeps;
|
for (std::string const& p : object.Provides) {
|
||||||
cmNinjaDeps ddOrderOnlyDeps;
|
build.ImplicitOuts.push_back(this->ConvertToNinjaPath(mod_files[p]));
|
||||||
cmNinjaVars ddVars;
|
}
|
||||||
|
build.ImplicitDeps.clear();
|
||||||
ddOutputs.push_back(object.Object);
|
for (std::string const& r : object.Requires) {
|
||||||
for (std::string const& p : object.Provides) {
|
auto mit = mod_files.find(r);
|
||||||
ddImplicitOuts.push_back(this->ConvertToNinjaPath(mod_files[p]));
|
if (mit != mod_files.end()) {
|
||||||
}
|
build.ImplicitDeps.push_back(this->ConvertToNinjaPath(mit->second));
|
||||||
for (std::string const& r : object.Requires) {
|
}
|
||||||
std::map<std::string, std::string>::iterator m = mod_files.find(r);
|
}
|
||||||
if (m != mod_files.end()) {
|
build.Variables.clear();
|
||||||
ddImplicitDeps.push_back(this->ConvertToNinjaPath(m->second));
|
if (!object.Provides.empty()) {
|
||||||
|
build.Variables.emplace("restat", "1");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (!object.Provides.empty()) {
|
|
||||||
ddVars["restat"] = "1";
|
|
||||||
}
|
|
||||||
|
|
||||||
this->WriteBuild(ddf, ddComment, ddRule, ddOutputs, ddImplicitOuts,
|
this->WriteBuild(ddf, build);
|
||||||
ddExplicitDeps, ddImplicitDeps, ddOrderOnlyDeps, ddVars);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the map of modules provided by this target in a file for
|
// Store the map of modules provided by this target in a file for
|
||||||
|
Loading…
Reference in New Issue
Block a user