Ninja: Use cmNinjaBuild class for WriteBuild

This commit is contained in:
Sebastian Holtermann 2019-05-30 17:29:06 +02:00
parent df06c8d792
commit ccf9507956

View File

@ -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