aboutsummaryrefslogtreecommitdiff
path: root/build/test/rule.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-31 12:52:20 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-31 12:52:20 +0200
commitbbd0f3bb21442a2833916110cbe8e9a07e9f4c1f (patch)
treed25de6f2bcfa4b6cabe1fd55a1b8f508005de4c1 /build/test/rule.cxx
parent729b56300c441a0d63c7d2013eb5a881211d352b (diff)
Essential install module functionality
Diffstat (limited to 'build/test/rule.cxx')
-rw-r--r--build/test/rule.cxx16
1 files changed, 9 insertions, 7 deletions
diff --git a/build/test/rule.cxx b/build/test/rule.cxx
index da17d61..6e82d8d 100644
--- a/build/test/rule.cxx
+++ b/build/test/rule.cxx
@@ -5,7 +5,6 @@
#include <build/test/rule>
#include <butl/process>
-#include <butl/fdstream>
#include <build/scope>
#include <build/target>
@@ -31,6 +30,9 @@ namespace build
bool r (false);
value_proxy v;
+ // @@ This logic doesn't take into account target type/pattern-
+ // specific variables.
+ //
for (auto p (t.vars.find_namespace ("test"));
p.first != p.second;
++p.first)
@@ -62,7 +64,7 @@ namespace build
if (!r)
{
- // See if the is a scope variable.
+ // See if there is a scope variable.
//
if (!v)
v.rebind (t.base_scope ()[string("test.") + t.type ().name]);
@@ -103,7 +105,7 @@ namespace build
{
tracer trace ("test::rule::apply");
- if (!mr.value) // Not a test.
+ if (!mr.bvalue) // Not a test.
return noop_recipe;
// In case of test, we don't do anything for other meta-operations.
@@ -116,7 +118,7 @@ namespace build
// 1. This target is a test.
// 2. The action is either
// a. (perform, test, 0) or
- // b. (*, update, 0)
+ // b. (*, update, install)
//
// In both cases, the next step is to see if we have test.{input,
// output,roundtrip}.
@@ -207,7 +209,7 @@ namespace build
{
build::match (a, *it);
- if (file_rule::uptodate (a, *it))
+ if (it->state () == target_state::unchanged)
it = nullptr;
}
@@ -215,7 +217,7 @@ namespace build
{
build::match (a, *ot);
- if (file_rule::uptodate (a, *ot))
+ if (ot->state () == target_state::unchanged)
ot = nullptr;
}
else
@@ -229,7 +231,7 @@ namespace build
recipe d (match_delegate (a, t).first);
// If we have no input/output that needs updating, then simply
- // redirect to it
+ // redirect to it.
//
if (it == nullptr && ot == nullptr)
return d;