diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2021-02-03 09:45:46 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2021-02-03 09:45:46 +0200 |
commit | 90d37f3fe126fa7b3d97fb071f537f910bd4a7fa (patch) | |
tree | 95d8395498c6d2ba7909e46212414c648647855f /libbuild2/cc/common.cxx | |
parent | 67d799852492743a93a464002395ccb624514fb8 (diff) |
Propagate relevant options/prerequisites to header unit sidebuilds
Diffstat (limited to 'libbuild2/cc/common.cxx')
-rw-r--r-- | libbuild2/cc/common.cxx | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libbuild2/cc/common.cxx b/libbuild2/cc/common.cxx index 1bbdf14..7492181 100644 --- a/libbuild2/cc/common.cxx +++ b/libbuild2/cc/common.cxx @@ -335,9 +335,22 @@ namespace build2 // on Windows import-installed DLLs may legally have empty // paths. // - if (t.mtime () == timestamp_unknown) + const char* w (nullptr); + if (t.ctx.phase == run_phase::match) + { + size_t o (t.state[a].task_count.load (memory_order_consume) - + t.ctx.count_base ()); + + if (o != target::offset_applied && + o != target::offset_executed) + w = "not matched"; + } + else if (t.mtime () == timestamp_unknown) + w = "out of date"; + + if (w != nullptr) fail << (impl ? "implementation" : "interface") - << " dependency " << t << " is out of date" << + << " dependency " << t << " is " << w << info << "mentioned in *.export." << (impl ? "imp_" : "") << "libs of target " << l << info << "is it a prerequisite of " << l << "?"; |