}
if(verbose>=2)
{
+ logger.enable_channel("environment");
logger.enable_channel("packages");
logger.enable_channel("commands");
}
package_manager.set_no_externals(no_externals);
- load_build_file((FS::get_sys_data_dir(argv[0], "builder")/"builderrc").str());
- load_build_file((FS::get_user_data_dir("builder")/"rc").str());
-
if(arch.empty())
current_arch = &native_arch;
else
current_arch = new Architecture(*this, arch);
- if(!current_arch->is_native())
- {
- for(StringMap::const_iterator i=cross_prefixes.begin(); i!=cross_prefixes.end(); ++i)
- if(current_arch->match_name(i->first))
- {
- current_arch->set_cross_prefix(i->second);
- break;
- }
- }
+ load_build_file((FS::get_sys_data_dir(argv[0], "builder")/"builderrc").str());
+ load_build_file((FS::get_user_data_dir("builder")/"rc").str());
if(prfx.empty())
{
Target *world = new VirtualTarget(*this, "world");
Target *def_tgt = new VirtualTarget(*this, "default");
- world->add_depend(def_tgt);
+ world->add_depend(*def_tgt);
Target *install = new VirtualTarget(*this, "install");
- world->add_depend(install);
+ world->add_depend(*install);
Target *tarballs = new VirtualTarget(*this, "tarballs");
- world->add_depend(tarballs);
+ world->add_depend(*tarballs);
const PackageManager::PackageMap &packages = package_manager.get_packages();
for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i)
return -1;
}
- cmdline->add_depend(tgt);
+ cmdline->add_depend(*tgt);
}
cmdline->prepare();
i->second->force_rebuild();
}
- for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i)
- if(SourcePackage *spkg = dynamic_cast<SourcePackage *>(i->second))
- spkg->get_deps_cache().save();
+ if(!dry_run)
+ {
+ for(PackageManager::PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i)
+ i->second->save_caches();
+ }
return 0;
}
Builder::Loader::Loader(Builder &b, const FS::Path &s):
- bld(b),
+ DataFile::ObjectLoader<Builder>(b),
src(s)
{
+ add("architecture", &Loader::architecture);
add("binary_package", &Loader::binpkg);
- add("cross_prefix", &Loader::cross_prefix);
add("profile", &Loader::profile);
add("package", &Loader::package);
}
-void Builder::Loader::binpkg(const string &n)
+void Builder::Loader::architecture(const string &n)
{
- BinaryPackage *pkg = new BinaryPackage(bld, n);
- load_sub(*pkg);
+ if(obj.current_arch->match_name(n))
+ load_sub(*obj.current_arch);
}
-void Builder::Loader::cross_prefix(const string &a, const string &p)
+void Builder::Loader::binpkg(const string &n)
{
- bld.cross_prefixes[a] = p;
+ BinaryPackage *pkg = new BinaryPackage(obj, n);
+ load_sub(*pkg);
}
void Builder::Loader::profile(const string &n)
StringMap prf;
ProfileLoader ldr(prf);
load_sub_with(ldr);
- bld.profile_tmpl.insert(ProfileTemplateMap::value_type(n, prf));
+ obj.profile_tmpl.insert(ProfileTemplateMap::value_type(n, prf));
}
void Builder::Loader::package(const string &n)
{
- SourcePackage *pkg = new SourcePackage(bld, n, src);
- if(!bld.main_pkg)
- bld.main_pkg = pkg;
+ SourcePackage *pkg = new SourcePackage(obj, n, src);
+ if(!obj.main_pkg)
+ obj.main_pkg = pkg;
load_sub(*pkg);
}