diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-17 10:49:29 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-20 16:54:03 +0200 |
commit | 17f2cab4490f075a5cb9e975e4b92c06572270ca (patch) | |
tree | f282c763f3a170c5ee7bceedb7d84309cb187731 /src | |
parent | 399fb01fef0d9ccdbdf840970d4d65c0352244e5 (diff) | |
download | justbuild-17f2cab4490f075a5cb9e975e4b92c06572270ca.tar.gz |
analysed targets: artifacts can also be contained in nodes and results
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/analysed_target/analysed_target.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/analysed_target/analysed_target.cpp b/src/buildtool/build_engine/analysed_target/analysed_target.cpp index 7124e672..bae35ada 100644 --- a/src/buildtool/build_engine/analysed_target/analysed_target.cpp +++ b/src/buildtool/build_engine/analysed_target/analysed_target.cpp @@ -21,6 +21,24 @@ void CollectNonKnownArtifacts( CollectNonKnownArtifacts(val, artifacts, traversed); } } + else if (expr->IsNode()) { + auto const& node = expr->Node(); + if (node.IsAbstract()) { + CollectNonKnownArtifacts( + node.GetAbstract().target_fields, artifacts, traversed); + } + else { + // value node + CollectNonKnownArtifacts(node.GetValue(), artifacts, traversed); + } + } + else if (expr->IsResult()) { + auto const& result = expr->Result(); + CollectNonKnownArtifacts( + result.artifact_stage, artifacts, traversed); + CollectNonKnownArtifacts(result.runfiles, artifacts, traversed); + CollectNonKnownArtifacts(result.provides, artifacts, traversed); + } else if (expr->IsArtifact()) { auto const& artifact = expr->Artifact(); if (not artifact.IsKnown()) { |