aboutsummaryrefslogtreecommitdiff
path: root/build2/algorithm.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-04-23 14:25:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-04-26 09:38:09 +0200
commitf98262e37f608330fcfce799dcacc6fbacac8f8a (patch)
tree080ef26d80ee6419ef3a2f27434d75136f502cb2 /build2/algorithm.hxx
parentc414abe13450e2b4e204f6368ba83c8916de1ebd (diff)
Implement forwarded configurations and backlinking
Diffstat (limited to 'build2/algorithm.hxx')
-rw-r--r--build2/algorithm.hxx31
1 files changed, 28 insertions, 3 deletions
diff --git a/build2/algorithm.hxx b/build2/algorithm.hxx
index 62c312f..e736626 100644
--- a/build2/algorithm.hxx
+++ b/build2/algorithm.hxx
@@ -181,13 +181,23 @@ namespace build2
lock (action, const target&);
// Add an ad hoc member to the end of the chain assuming that an already
- // existing member of this target type is the same.
+ // existing member of this target type is the same. Return the locked member
+ // target.
//
+ target_lock
+ add_adhoc_member (action,
+ target&,
+ const target_type&,
+ const dir_path& dir,
+ const dir_path& out,
+ const string& name);
+
// If the suffix is specified, it is added (as an extension) to the member's
- // target name. Return the locked member target.
+ // target name.
//
target_lock
- add_adhoc_member (action, target&,
+ add_adhoc_member (action,
+ target&,
const target_type&,
const char* suffix = nullptr);
@@ -632,6 +642,21 @@ namespace build2
{
return clean_extra (a, f, {extra});
}
+
+ // Update/clean a backlink issuing appropriate diagnostics at appropriate
+ // levels depending on first/changed.
+ //
+ void
+ update_backlink (const file&, const path& link, bool changed);
+
+ void
+ update_backlink (const path& target, const path& link, bool changed);
+
+ void
+ update_backlink (const path& target, const path& link);
+
+ void
+ clean_backlink (const path& link, uint16_t verbosity);
}
#include <build2/algorithm.ixx>