diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-05-08 13:21:55 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-05-09 15:37:47 +0200 |
commit | b5d143f529e4ebbeb7a1746312e38da815e2e321 (patch) | |
tree | 2275a4619794874f7e8efea1735d46a1912313dc /libbuild2/rule.cxx | |
parent | 00df206af5c80aba31bf7d180bdf03d617071e94 (diff) |
Add --load-only option in addition to --match-only
This option has the effect of loading all the subdirectory buildfiles that
are not explicitly included.
Diffstat (limited to 'libbuild2/rule.cxx')
-rw-r--r-- | libbuild2/rule.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/libbuild2/rule.cxx b/libbuild2/rule.cxx index 5d456d5..0b401c2 100644 --- a/libbuild2/rule.cxx +++ b/libbuild2/rule.cxx @@ -219,7 +219,23 @@ namespace build2 // inject_fsdir (a, t, true, false); - match_prerequisites (a, t); + // Handle the alias match-only level. + // + match_search ms; + if (t.ctx.match_only && *t.ctx.match_only == match_only_level::alias) + { + ms = [] (action, + const target& t, + const prerequisite& p, + include_type i) + { + return prerequisite_target ( + p.is_a<alias> () ? &search (t, p) : nullptr, + i); + }; + } + + match_prerequisites (a, t, ms); return default_recipe; } |