X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftool.cpp;h=28523f677e57bd697d9b2b85ad39d9bcb9461747;hb=40ab4f61eaf7fc14fc6d1c2ea5eecee21882893a;hp=852fa2d5805b294b4d74b5a5ab165039b08feaad;hpb=451ef4f33b5a57dcb56bd7cb671bed359ac86247;p=builder.git diff --git a/source/tool.cpp b/source/tool.cpp index 852fa2d..28523f6 100644 --- a/source/tool.cpp +++ b/source/tool.cpp @@ -20,6 +20,11 @@ void Tool::set_command(const string &cmd, bool cross) command = cmd; } +void Tool::set_run(function f) +{ + run_func = move(f); +} + bool Tool::accepts_suffix(const string &suffix, bool aux) const { return (any_equals(input_suffixes, suffix) || (aux && any_equals(aux_suffixes, suffix))); @@ -38,15 +43,13 @@ void Tool::prepare() return; prepared = true; + if(!command.empty()) + executable = builder.get_vfs().find_binary(command); do_prepare(); - if(!executable && !command.empty()) + if(!command.empty() && !executable) { - executable = builder.get_vfs().find_binary(command); - if(!executable) - { - builder.get_logger().log("problems", "Can't find executable %s for %s", command, tag); - problems.push_back(format("Can't find executable %s", command)); - } + builder.get_logger().log("problems", "Can't find executable %s for %s", command, tag); + problems.push_back(format("Can't find executable %s", command)); } }