aboutsummaryrefslogtreecommitdiff
path: root/build2/target.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-12 14:51:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 08:05:07 +0200
commit8d2e541ab1aa24140eb680fb046e49a4a3f0bbd2 (patch)
tree57401f85aeaa2e3d53534bcb9df007dffafccbac /build2/target.cxx
parent04e382b0af66057f19c6dce66c43316cbd3cb23c (diff)
Various design/implementation cleanups
Diffstat (limited to 'build2/target.cxx')
-rw-r--r--build2/target.cxx25
1 files changed, 15 insertions, 10 deletions
diff --git a/build2/target.cxx b/build2/target.cxx
index 8541deb..cdecfd3 100644
--- a/build2/target.cxx
+++ b/build2/target.cxx
@@ -117,7 +117,7 @@ namespace build2
}
pair<lookup, size_t> target::
- find_original (const variable& var) const
+ find_original (const variable& var, bool target_only) const
{
pair<lookup, size_t> r (lookup (), 0);
@@ -147,15 +147,20 @@ namespace build2
//
if (!r.first)
{
- auto p (base_scope ().find_original (
- var,
- &type (),
- &name,
- g != nullptr ? &g->type () : nullptr,
- g != nullptr ? &g->name : nullptr));
-
- r.first = move (p.first);
- r.second = r.first ? r.second + p.second : p.second;
+ if (!target_only)
+ {
+ auto p (base_scope ().find_original (
+ var,
+ &type (),
+ &name,
+ g != nullptr ? &g->type () : nullptr,
+ g != nullptr ? &g->name : nullptr));
+
+ r.first = move (p.first);
+ r.second = r.first ? r.second + p.second : p.second;
+ }
+ else
+ r.second = size_t (~0);
}
return r;