summaryrefslogtreecommitdiffstats
path: root/src/ninja.cc
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2019-04-20 11:28:13 (GMT)
committerGitHub <noreply@github.com>2019-04-20 11:28:13 (GMT)
commit2e64645749ff91eff2f999f03f55da360ae5913d (patch)
tree3b792807b3d1aaa2402fe95548920305803cfed6 /src/ninja.cc
parent71b96489325e5e2629464687c60f20d9905ab51c (diff)
parent1d55d05afd5949a5caa6b41ffa5539f4cbb5a575 (diff)
downloadNinja-2e64645749ff91eff2f999f03f55da360ae5913d.zip
Ninja-2e64645749ff91eff2f999f03f55da360ae5913d.tar.gz
Ninja-2e64645749ff91eff2f999f03f55da360ae5913d.tar.bz2
Merge pull request #1521 from bradking/dyndep
dyndep: dynamically discovered dependencies for Fortran and C++20 modules
Diffstat (limited to 'src/ninja.cc')
-rw-r--r--src/ninja.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/ninja.cc b/src/ninja.cc
index b608426..5f19a65 100644
--- a/src/ninja.cc
+++ b/src/ninja.cc
@@ -338,7 +338,7 @@ int NinjaMain::ToolGraph(const Options* options, int argc, char* argv[]) {
return 1;
}
- GraphViz graph;
+ GraphViz graph(&state_, &disk_interface_);
graph.Start();
for (vector<Node*>::const_iterator n = nodes.begin(); n != nodes.end(); ++n)
graph.AddTarget(*n);
@@ -353,6 +353,8 @@ int NinjaMain::ToolQuery(const Options* options, int argc, char* argv[]) {
return 1;
}
+ DyndepLoader dyndep_loader(&state_, &disk_interface_);
+
for (int i = 0; i < argc; ++i) {
string err;
Node* node = CollectTarget(argv[i], &err);
@@ -363,6 +365,11 @@ int NinjaMain::ToolQuery(const Options* options, int argc, char* argv[]) {
printf("%s:\n", node->path().c_str());
if (Edge* edge = node->in_edge()) {
+ if (edge->dyndep_ && edge->dyndep_->dyndep_pending()) {
+ if (!dyndep_loader.LoadDyndeps(edge->dyndep_, &err)) {
+ Warning("%s\n", err.c_str());
+ }
+ }
printf(" input: %s\n", edge->rule_->name().c_str());
for (int in = 0; in < (int)edge->inputs_.size(); in++) {
const char* label = "";
@@ -651,7 +658,7 @@ int NinjaMain::ToolClean(const Options* options, int argc, char* argv[]) {
return 1;
}
- Cleaner cleaner(&state_, config_);
+ Cleaner cleaner(&state_, config_, &disk_interface_);
if (argc >= 1) {
if (clean_rules)
return cleaner.CleanRules(argc, argv);