aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/dist/rule.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/dist/rule.hxx')
-rw-r--r--libbuild2/dist/rule.hxx20
1 files changed, 16 insertions, 4 deletions
diff --git a/libbuild2/dist/rule.hxx b/libbuild2/dist/rule.hxx
index a864015..69ab3d9 100644
--- a/libbuild2/dist/rule.hxx
+++ b/libbuild2/dist/rule.hxx
@@ -11,6 +11,10 @@
#include <libbuild2/action.hxx>
#include <libbuild2/target.hxx>
+#include <libbuild2/dist/types.hxx>
+
+#include <libbuild2/export.hxx>
+
namespace build2
{
namespace dist
@@ -19,20 +23,28 @@ namespace build2
//
// A custom rule (usually the same as perform_update) may be necessary to
// establish group links (so that we see the dist variable set on a group)
- // or to see through non-see-through groups (like lib{}; see the
- // bin::lib_rule for an example). Note that in the latter case the rule
- // should "see" all its members for the dist case.
+ // or to see through non-see-through groups (like lib{}, obj{}; see rule
+ // in the bin module for an example). Note that in the latter case the
+ // rule should "see" all its members for the dist case.
//
- class rule: public simple_rule
+ class LIBBUILD2_SYMEXPORT rule: public simple_rule
{
public:
rule () {}
+ // Always matches (returns true).
+ //
virtual bool
match (action, target&) const override;
+ // Matches all the prerequisites (including from group) and returns
+ // noop_recipe (which will never be executed).
+ //
virtual recipe
apply (action, target&) const override;
+
+ static void
+ match_postponed (const postponed_prerequisite&);
};
}
}