diff options
Diffstat (limited to 'build2/target.cxx')
-rw-r--r-- | build2/target.cxx | 25 |
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; |