aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/bin/rule.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-06-24 06:42:13 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-06-24 06:42:13 +0200
commit1c12242aa7cd00e35a9be43b664e5486b2adc846 (patch)
treef86e4b91b461daff72756b83815c93bf67606387 /libbuild2/bin/rule.hxx
parent658e0b3dbf496f6489ee6a5054f5609a7fa9ce5a (diff)
Make libul{} rule match without hint
In the end, the extra jumping through the hoops doesn't justify the extra safety we gain. The only plausible accidental mistake is making libul{} a dependency of ./ but then we don't prevent the same for libue{}, which also doesn't make much sense. Though, the consequences of doing this for libul{} could be more severe, like messed up for-install'ness. Oh, well, I guess people will just have to pay attention (this could be a good check for the linter we've been thinking about).
Diffstat (limited to 'libbuild2/bin/rule.hxx')
-rw-r--r--libbuild2/bin/rule.hxx21
1 files changed, 7 insertions, 14 deletions
diff --git a/libbuild2/bin/rule.hxx b/libbuild2/bin/rule.hxx
index fcbd0ca..b403433 100644
--- a/libbuild2/bin/rule.hxx
+++ b/libbuild2/bin/rule.hxx
@@ -30,33 +30,26 @@ namespace build2
apply (action, target&) const override;
};
- // If metadata is false, the this is a "fail rule" for libul{} that issues
- // diagnostics if someone tries to build this group directly.
- //
- // If metadata is true, then this rule only matches with the explicit
- // `bin.metadata` hint. In this case it picks, matches, and unmatches (if
- // possible) a member for the purpose of making its metadata (for example,
- // library's poptions, if it's one of the cc libraries) available.
+ // This rule picks, matches, and unmatches (if possible) a member for the
+ // purpose of making its metadata (for example, library's poptions, if
+ // it's one of the cc libraries) available.
//
// The underlying idea here is that someone else (e.g., cc::link_rule)
// makes a more informed choice and we piggy back on that decision,
// falling back to making our own based on bin.lib and bin.exe.lib. Note
// that for update this rule always returns target_state::unchanged.
//
- class libul_rule: public rule
+ class libul_rule: public simple_rule
{
public:
explicit
- libul_rule (bool md): metadata_ (md) {}
+ libul_rule () {}
virtual bool
- match (action, target&, const string&, match_extra&) const override;
+ match (action, target&) const override;
virtual recipe
- apply (action, target&, match_extra&) const override;
-
- private:
- bool metadata_;
+ apply (action, target&) const override;
};
// Pass-through to group members rule, similar to alias.