+void Tool::prepare()
+{
+ if(prepared)
+ return;
+
+ prepared = true;
+ if(!command.empty())
+ executable = builder.get_vfs().find_binary(command);
+ do_prepare();
+ if(!command.empty() && !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));
+ }
+}
+
+string Tool::create_build_signature(const BuildInfo &) const
+{
+ if(executable)
+ return format("%s=%s", tag, FS::basename(executable->get_path()));
+ else
+ return string();
+}