diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-06-24 06:42:13 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-06-24 06:42:13 +0200 |
commit | 1c12242aa7cd00e35a9be43b664e5486b2adc846 (patch) | |
tree | f86e4b91b461daff72756b83815c93bf67606387 /libbuild2/bin/rule.hxx | |
parent | 658e0b3dbf496f6489ee6a5054f5609a7fa9ce5a (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.hxx | 21 |
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. |