This reduces problems if the same source directory is shared between
computers of different architectures, or if building versions for
different CPUs.
object_tools.insert((*i)->get_tool());
list<string> sigs;
- sigs.push_back(tool->create_build_signature(component->get_build_info()));
for(set<const Tool *>::const_iterator i=object_tools.begin(); i!=object_tools.end(); ++i)
sigs.push_back((*i)->create_build_signature(component->get_build_info()));
sigs.sort();
+ sigs.push_front(tool->create_build_signature(component->get_build_info()));
+ if(const Architecture *arch = tool->get_architecture())
+ sigs.push_front(arch->get_name());
return join(sigs.begin(), sigs.end(), ";");
}
const std::string &get_tag() const { return tag; }
+ /** Returns the architecture this tool build for. May return null if the
+ tool is architecture-agnostic. */
+ const Architecture *get_architecture() const { return architecture; }
+
/** Returns a target for the tool's own executable. If the tool does not
use an external program, returns null. */
FileTarget *get_executable() const { return executable; }