X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftool.cpp;h=82349e18eea50b747d8870ffb3f3113980dc7216;hb=15cf75a5ac62454d90b8b2987b1940710056f4d0;hp=cd002379ccc110c3cc13569563695077bea48b79;hpb=c8c51fac9453a677fc3e6932c4730f35e237af89;p=builder.git diff --git a/source/tool.cpp b/source/tool.cpp index cd00237..82349e1 100644 --- a/source/tool.cpp +++ b/source/tool.cpp @@ -43,9 +43,10 @@ void Tool::prepare() return; prepared = true; + if(!command.empty()) executable = builder.get_vfs().find_binary(command); - do_prepare(); + prepare(*this); if(!command.empty() && !executable) { builder.get_logger().log("problems", "Can't find executable %s for %s", command, tag); @@ -53,6 +54,14 @@ void Tool::prepare() } } +void Tool::prepare(Tool &tool) const +{ + if(&tool!=this && tool.get_base_tool()!=this) + throw invalid_argument("Tool::prepare"); + + do_prepare(tool); +} + string Tool::create_build_signature(const BuildInfo &) const { if(executable)