diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-10-30 10:38:53 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-10-30 10:38:53 +0200 |
commit | a49b6fff2ba25bf9150f89a4ecfc2c707ba633de (patch) | |
tree | 11357685757f09f2a8af6814dca78634b747da0c /libbuild2/cc | |
parent | f13e621eea57a7a7df2c9cc6c5a3012081a129e3 (diff) |
WIP: install: complete reapply() for libu
Diffstat (limited to 'libbuild2/cc')
-rw-r--r-- | libbuild2/cc/install-rule.cxx | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/libbuild2/cc/install-rule.cxx b/libbuild2/cc/install-rule.cxx index 0a5fb57..d3fa522 100644 --- a/libbuild2/cc/install-rule.cxx +++ b/libbuild2/cc/install-rule.cxx @@ -680,7 +680,8 @@ namespace build2 } } - return alias_rule::apply (a, t, me); + return alias_rule::apply_impl ( + a, t, me, me.cur_options != match_extra::all_options /* reapply */); } void libux_install_rule:: @@ -692,11 +693,8 @@ namespace build2 << ' ' << me.cur_options << ' ' << me.new_options; // @@ TMP - // If we are rematched with the buildtime option, propagate it to our - // prerequisite libraries. - // - // @@ Also libux? - // + me.cur_options |= me.new_options; + if ((me.new_options & lib::option_install_buildtime) != 0) { for (const target* pt: t.prerequisite_targets[a]) @@ -705,11 +703,9 @@ namespace build2 pt->is_a<libua> () || pt->is_a<libus> ())) rematch_sync (a, *pt, match_extra::all_options); } - } - - // @@ TODO: match additional prerequisites if required. - me.cur_options |= me.new_options; + alias_rule::reapply_impl (a, t, me); + } } } } |