]> git.tdb.fi Git - builder.git/blobdiff - source/tool.cpp
Resolve cmdline targets and what-ifs the same way
[builder.git] / source / tool.cpp
index e1858493add33c2624f78cd0585235d7603c03a1..cefbb8c3b0188c58d525b87def1a5b694f3a40df 100644 (file)
@@ -5,12 +5,26 @@ using namespace std;
 
 Tool::Tool(Builder &b, const string &t):
        builder(b),
-       tag(t)
+       architecture(0),
+       tag(t),
+       executable(0)
 { }
 
-bool Tool::accepts_suffix(const string &suffix) const
+Tool::Tool(Builder &b, const Architecture &a, const string &t):
+       builder(b),
+       architecture(&a),
+       tag(t),
+       executable(0)
+{ }
+
+bool Tool::accepts_suffix(const string &suffix, bool aux) const
 {
-       return find(input_suffixes.begin(), input_suffixes.end(), suffix)!=input_suffixes.end();
+       if(find(input_suffixes.begin(), input_suffixes.end(), suffix)!=input_suffixes.end())
+               return true;
+       else if(aux)
+               return find(aux_suffixes.begin(), aux_suffixes.end(), suffix)!=aux_suffixes.end();
+       else
+               return false;
 }
 
 Target *Tool::create_target(Target &source, const string &arg) const
@@ -19,3 +33,9 @@ Target *Tool::create_target(Target &source, const string &arg) const
        sources.push_back(&source);
        return create_target(sources, arg);
 }
+
+
+SubTool::SubTool(Tool &p):
+       Tool(p),
+       parent(p)
+{ }