if(package->get_config().get_mtime()>mtime)
mark_rebuild("Package options changed");
- string build_sig = create_build_signature();
- if(package->get_cache().has_key(this, "build_sig"))
+ if(tool->get_executable())
{
- if(package->get_cache().get_value(this, "build_sig")!=build_sig)
- mark_rebuild("Build signature changed");
+ string build_sig = create_build_signature();
+ if(package->get_cache().has_key(this, "build_sig"))
+ {
+ if(package->get_cache().get_value(this, "build_sig")!=build_sig)
+ mark_rebuild("Build signature changed");
+ }
}
}
}
if(architecture->is_cross())
command = format("%s-%s", architecture->get_cross_prefix(), command);
executable = builder.get_vfs().find_binary(command);
+ if(!executable)
+ builder.problem(string(), format("Can't find executable %s for tool %s", command, tag));
if(architecture->is_native())
system_path.push_back("/usr/include");
input_suffixes.push_back(".cc");
aux_suffixes.push_back(".hpp");
+ if(executable)
+ query_version();
+}
+
+void GnuCxxCompiler::query_version()
+{
ExternalTask::Arguments argv;
argv.push_back(executable->get_path().str());
argv.push_back("-dumpversion");
{
public:
GnuCxxCompiler(Builder &, const Architecture &);
+private:
+ void query_version();
+public:
virtual Target *create_source(const Component &, const Msp::FS::Path &) const;
virtual Target *create_source(const Msp::FS::Path &) const;
};