X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftool.cpp;h=5d0903a2e3c4eb44902ccd9d178c5aa207655e6a;hb=d1f9551e05c9d341149eb490e05b1465d3d6b711;hp=44255a1eb5ca692fe1fc03461cd63e4d422eca61;hpb=b45cfe5e437ca79bb3176618769628c58c0734d1;p=builder.git diff --git a/source/tool.cpp b/source/tool.cpp index 44255a1..5d0903a 100644 --- a/source/tool.cpp +++ b/source/tool.cpp @@ -1,28 +1,26 @@ #include +#include #include #include "architecture.h" #include "builder.h" +#include "filetarget.h" #include "tool.h" using namespace std; using namespace Msp; Tool::Tool(Builder &b, const string &t): - builder(b), - architecture(0), - tag(t), - executable(0), - processing_unit(ONE_FILE), - prepared(false) + Tool(b, 0, t) { } Tool::Tool(Builder &b, const Architecture &a, const string &t): + Tool(b, &a, t) +{ } + +Tool::Tool(Builder &b, const Architecture *a, const string &t): builder(b), - architecture(&a), - tag(t), - executable(0), - processing_unit(ONE_FILE), - prepared(false) + architecture(a), + tag(t) { } void Tool::set_command(const string &cmd, bool cross) @@ -43,7 +41,7 @@ bool Tool::accepts_suffix(const string &suffix, bool aux) const Target *Tool::create_target(Target &source, const string &arg) { - list sources; + vector sources; sources.push_back(&source); return create_target(sources, arg); } @@ -60,12 +58,20 @@ void Tool::prepare() executable = builder.get_vfs().find_binary(command); if(!executable) { - builder.get_logger().log("problems", format("Can't find executable %s for %s", command, tag)); + builder.get_logger().log("problems", "Can't find executable %s for %s", command, tag); problems.push_back(format("Can't find executable %s", command)); } } } +string Tool::create_build_signature(const BuildInfo &) const +{ + if(executable) + return format("%s=%s", tag, FS::basename(executable->get_path())); + else + return string(); +} + SubTool::SubTool(Tool &p): Tool(p), @@ -82,7 +88,7 @@ Target *SubTool::create_source(const FS::Path &p) const return parent.create_source(p); } -Target *SubTool::create_target(const list &s, const string &a) +Target *SubTool::create_target(const vector &s, const string &a) { return parent.create_target(s, a); }