aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2023-10-30 10:38:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2023-10-30 10:38:53 +0200
commita49b6fff2ba25bf9150f89a4ecfc2c707ba633de (patch)
tree11357685757f09f2a8af6814dca78634b747da0c /libbuild2/cc
parentf13e621eea57a7a7df2c9cc6c5a3012081a129e3 (diff)
WIP: install: complete reapply() for libu
Diffstat (limited to 'libbuild2/cc')
-rw-r--r--libbuild2/cc/install-rule.cxx16
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);
+ }
}
}
}