aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/context.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-06-21 10:04:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-06-21 10:04:07 +0200
commitbbe8cbd13c40a1309e0d7724319c5487a5df0879 (patch)
treebdd1e00d9605ec7d5d3d99f44f7eafaf7249a64c /libbuild2/context.hxx
parent2f29c7fbe758ffb53e4de9983df8b1cc927dad05 (diff)
Add --trace-{match,execute} options
These options can be used to understand which dependency chain causes matching or execution of a particular target.
Diffstat (limited to 'libbuild2/context.hxx')
-rw-r--r--libbuild2/context.hxx11
1 files changed, 11 insertions, 0 deletions
diff --git a/libbuild2/context.hxx b/libbuild2/context.hxx
index ad7fdff..d4cf9ff 100644
--- a/libbuild2/context.hxx
+++ b/libbuild2/context.hxx
@@ -219,6 +219,14 @@ namespace build2
//
bool keep_going;
+ // Targets to trace (see the --trace-* options).
+ //
+ // Note that these must be set after construction and must remain valid
+ // for the lifetime of the context instance.
+ //
+ const vector<name>* trace_match = nullptr;
+ const vector<name>* trace_execute = nullptr;
+
// In order to perform each operation the build system goes through the
// following phases:
//
@@ -588,6 +596,9 @@ namespace build2
// properly setup context (including, normally, a self-reference in
// modules_context).
//
+ // Note: see also the trace_* data members that, if needed, must be set
+ // separately, after construction.
+ //
explicit
context (scheduler&,
global_mutexes&,