Skip to content

Commit b94a891

Browse files
committed
missingdeps: add exception for targets that dep on build.ninja
A "missing dep path" to build.ninja is a false positive, skip reporting it.
1 parent bc69a64 commit b94a891

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/missing_deps.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ void MissingDependencyScanner::ProcessNodeDeps(Node* node, Node** dep_nodes,
114114
std::set<Edge*> deplog_edges;
115115
for (int i = 0; i < dep_nodes_count; ++i) {
116116
Node* deplog_node = dep_nodes[i];
117+
// Special exception: A dep on build.ninja can be used to mean "always
118+
// rebuild this target when the build is reconfigured", but build.ninja is
119+
// often generated by a configuration tool like cmake or gn. The rest of
120+
// the build "implicitly" depends on the entire build being reconfigured,
121+
// so a missing dep path to build.ninja is not an actual missing dependecy
122+
// problem.
123+
if (deplog_node->path() == "build.ninja")
124+
return;
117125
Edge* deplog_edge = deplog_node->in_edge();
118126
if (deplog_edge) {
119127
deplog_edges.insert(deplog_edge);

0 commit comments

Comments
 (0)