X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftool.cpp;h=a23de6322e8ad3fef1422531d8577944b18000de;hb=9e28243c9687608ec3c32954b4031490296ae877;hp=1ab3660474cf57de3a31bcf47df6231370beff5e;hpb=722d53055cc78a7a7d9901d2b1fe23a2a33fb623;p=builder.git diff --git a/source/tool.cpp b/source/tool.cpp index 1ab3660..a23de63 100644 --- a/source/tool.cpp +++ b/source/tool.cpp @@ -5,7 +5,18 @@ using namespace std; Tool::Tool(Builder &b, const string &t): builder(b), - tag(t) + architecture(0), + tag(t), + executable(0), + prepared(false) +{ } + +Tool::Tool(Builder &b, const Architecture &a, const string &t): + builder(b), + architecture(&a), + tag(t), + executable(0), + prepared(false) { } bool Tool::accepts_suffix(const string &suffix, bool aux) const @@ -18,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 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),