aboutsummaryrefslogtreecommitdiff
path: root/build/algorithm
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-06-22 09:24:12 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-06-22 09:24:12 +0200
commit6ecaa7e76c91a2842bcc63626a908bb2340b77b6 (patch)
treeaa0e3d8d5f9f791dfa1735ce7d8cc276a2c0baf3 /build/algorithm
parent82ad80de9a967f253026c4874b47486c69402288 (diff)
Remove prerequisite rewriting for c/cxx chaining
Diffstat (limited to 'build/algorithm')
-rw-r--r--build/algorithm27
1 files changed, 24 insertions, 3 deletions
diff --git a/build/algorithm b/build/algorithm
index 5138dfa..2dc7164 100644
--- a/build/algorithm
+++ b/build/algorithm
@@ -5,12 +5,15 @@
#ifndef BUILD_ALGORITHM
#define BUILD_ALGORITHM
+#include <string>
+
#include <build/types>
#include <build/target>
#include <build/operation>
namespace build
{
+ class scope;
class prerequisite;
class prerequisite_key;
@@ -21,13 +24,31 @@ namespace build
target&
search (prerequisite&);
- // As above but specify the prerequisite to search as a key. Useful
- // for searching for target group members where we need to search
- // for a different target type.
+ // As above but specify the prerequisite to search as a key.
//
target&
search (const prerequisite_key&);
+ // As above but specify the prerequisite to search as individual
+ // key components. Useful for searching for target group members
+ // where we need to search for a different target type.
+ //
+ target&
+ search (const target_type& type,
+ const dir_path& dir,
+ const std::string& name,
+ const std::string* ext,
+ scope* scope);
+
+ // As above but specify the target type as template argument.
+ //
+ template <typename T>
+ T&
+ search (const dir_path& dir,
+ const std::string& name,
+ const std::string* ext,
+ scope* scope);
+
// Match a rule to the action/target with ambiguity detection.
//
void