aboutsummaryrefslogtreecommitdiff
path: root/build/parser.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-04-20 15:34:16 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-04-20 15:34:16 +0200
commit4c44c914d898af53152addad5530504548175e85 (patch)
treef319c76b681e44874f887bfb5d085d59aa1e662d /build/parser.cxx
parenta82cdb8fd9ba02034d296769772cdf81244da66a (diff)
Merge config.cxx.* variables into cxx.* when loading cxx module
Diffstat (limited to 'build/parser.cxx')
-rw-r--r--build/parser.cxx15
1 files changed, 12 insertions, 3 deletions
diff --git a/build/parser.cxx b/build/parser.cxx
index 6c3989d..4275411 100644
--- a/build/parser.cxx
+++ b/build/parser.cxx
@@ -389,13 +389,19 @@ namespace build
// See if there is a trigger for this path.
//
+ const scope::trigger_type* trig (nullptr);
{
auto i (root_->triggers.find (p));
- if (i != root_->triggers.end () && !i->second (*root_, p))
+ if (i != root_->triggers.end ())
{
- level4 ([&]{trace (l) << "trigger instructed to skip " << p;});
- continue;
+ if (!i->second (true, *scope_, p))
+ {
+ level4 ([&]{trace (l) << "trigger instructed to skip " << p;});
+ continue;
+ }
+
+ trig = &i->second;
}
}
@@ -443,6 +449,9 @@ namespace build
auto v (root_->vars["src_root"]);
src_root_ = v ? &v.as<const dir_path&> () : nullptr;
}
+
+ if (trig != nullptr)
+ (*trig) (false, *scope_, p);
}
if (tt == type::newline)