]> git.tdb.fi Git - builder.git/blobdiff - source/tool.cpp
Delay locating tool executables until the tool is needed
[builder.git] / source / tool.cpp
index cefbb8c3b0188c58d525b87def1a5b694f3a40df..a23de6322e8ad3fef1422531d8577944b18000de 100644 (file)
@@ -7,14 +7,16 @@ Tool::Tool(Builder &b, const string &t):
        builder(b),
        architecture(0),
        tag(t),
-       executable(0)
+       executable(0),
+       prepared(false)
 { }
 
 Tool::Tool(Builder &b, const Architecture &a, const string &t):
        builder(b),
        architecture(&a),
        tag(t),
-       executable(0)
+       executable(0),
+       prepared(false)
 { }
 
 bool Tool::accepts_suffix(const string &suffix, bool aux) const
@@ -27,13 +29,22 @@ bool Tool::accepts_suffix(const string &suffix, bool aux) const
                return false;
 }
 
-Target *Tool::create_target(Target &source, const string &arg) const
+Target *Tool::create_target(Target &source, const string &arg)
 {
        list<Target *> sources;
        sources.push_back(&source);
        return create_target(sources, arg);
 }
 
+void Tool::prepare()
+{
+       if(prepared)
+               return;
+
+       prepared = true;
+       do_prepare();
+}
+
 
 SubTool::SubTool(Tool &p):
        Tool(p),