aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/adhoc-rule-buildscript.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/adhoc-rule-buildscript.hxx')
-rw-r--r--libbuild2/adhoc-rule-buildscript.hxx46
1 files changed, 45 insertions, 1 deletions
diff --git a/libbuild2/adhoc-rule-buildscript.hxx b/libbuild2/adhoc-rule-buildscript.hxx
index 7f9c10a..336dceb 100644
--- a/libbuild2/adhoc-rule-buildscript.hxx
+++ b/libbuild2/adhoc-rule-buildscript.hxx
@@ -36,7 +36,41 @@ namespace build2
const optional<timestamp>&) const override;
target_state
- perform_update_file (action, const target&) const;
+ perform_update_file_or_group (action, const target&) const;
+
+ struct match_data;
+ struct match_data_byproduct;
+
+ target_state
+ perform_update_file_or_group_dyndep (
+ action, const target&, match_data&) const;
+
+ target_state
+ perform_update_file_or_group_dyndep_byproduct (
+ action, const target&, match_data_byproduct&) const;
+
+ optional<target_state>
+ execute_update_prerequisites (action, const target&, timestamp) const;
+
+ bool
+ execute_update_file (const scope&,
+ action a, const file&,
+ build::script::environment&,
+ build::script::default_runner&,
+ bool deferred_failure = false) const;
+
+ bool
+ execute_update_group (const scope&,
+ action a, const group&,
+ build::script::environment&,
+ build::script::default_runner&,
+ bool deferred_failure = false) const;
+
+ static target_state
+ perform_clean_file (action, const target&);
+
+ static target_state
+ perform_clean_group (action, const target&);
target_state
default_action (action, const target&, const optional<timestamp>&) const;
@@ -56,9 +90,19 @@ namespace build2
virtual void
dump_text (ostream&, string&) const override;
+ void
+ print_custom_diag (const scope&, names&&, const location&) const;
+
public:
using script_type = build::script::script;
+ // The prerequisite_target::include bits that indicate update=unmatch and
+ // an ad hoc version of that.
+ //
+ static const uintptr_t include_unmatch = 0x100;
+ static const uintptr_t include_unmatch_adhoc = 0x200;
+
+
script_type script;
string checksum; // Script text hash.
const target_type* ttype; // First target/pattern type.