aboutsummaryrefslogtreecommitdiff
path: root/build/context
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-08-13 14:48:41 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-08-13 14:48:41 +0200
commit9fa5209175dffb881e8ec6c5f6ad4fc54448244a (patch)
treeb937763e9605832f9cac87b846a2996c8727af12 /build/context
parent467d700c66582471013a07384318d0142d2f3de2 (diff)
Rework postponed logic
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly.
Diffstat (limited to 'build/context')
-rw-r--r--build/context9
1 files changed, 9 insertions, 0 deletions
diff --git a/build/context b/build/context
index c8200b7..b8d178b 100644
--- a/build/context
+++ b/build/context
@@ -7,6 +7,7 @@
#include <string>
#include <ostream>
+#include <cstdint> // uint64_t
#include <butl/filesystem>
@@ -33,6 +34,14 @@ namespace build
extern execution_mode current_mode;
+ // Total number of dependency relationships in the current action.
+ // Together with the target::dependents count it is incremented
+ // during the rule search & match phase and is decremented during
+ // execution with the expectation of it reaching 0. Used as a sanity
+ // check.
+ //
+ extern std::uint64_t dependency_count;
+
// Reset the dependency state. In particular, this removes all the
// targets, scopes, and variable names.
//