targets.insert(TargetMap::value_type(t->get_name(), t));
}
+void Builder::add_primary_target(Target &t)
+{
+ get_target("world")->add_dependency(t);
+
+ if(t.get_package()==main_pkg && t.get_component() && t.get_component()->is_default())
+ get_target("default")->add_dependency(t);
+}
+
void Builder::usage(const char *reason, const char *argv0, bool brief)
{
if(reason)
logger.log("files", format("Reading %s", fn));
DataFile::Parser parser(in, fn.str());
- Loader loader(*this, fn.subpath(0, fn.size()-1));
+ Loader loader(*this);
loader.load(parser);
return 0;
else if(show_progress)
logger.log("summary", "Build complete");
+ if(!dry_run)
+ {
+ const PackageManager::PackageMap &packages = package_manager.get_packages();
+ for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i)
+ i->second->save_caches();
+ }
+
return fail;
}
string Builder::helpmsg;
-Builder::Loader::Loader(Builder &b, const FS::Path &s):
- DataFile::ObjectLoader<Builder>(b),
- src(s)
+Builder::Loader::Loader(Builder &b):
+ DataFile::ObjectLoader<Builder>(b)
{
add("architecture", &Loader::architecture);
add("binary_package", &Loader::binpkg);
void Builder::Loader::package(const string &n)
{
- SourcePackage *pkg = new SourcePackage(obj, n, src);
+ SourcePackage *pkg = new SourcePackage(obj, n, get_source());
if(!obj.main_pkg)
obj.main_pkg = pkg;