]> git.tdb.fi Git - builder.git/blobdiff - source/builder.cpp
Add some logging and remove a stray debug statement
[builder.git] / source / builder.cpp
index 7b222df4997c1f05e31febfef670a10d46fc80dd..df7edabbd8e0bae1f28782f3f0bc3a4ffe19e8a2 100644 (file)
@@ -331,6 +331,14 @@ void Builder::add_target(Target *t)
        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)
@@ -357,7 +365,7 @@ int Builder::load_build_file(const FS::Path &fn)
        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;
@@ -510,6 +518,13 @@ int Builder::do_build()
        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;
 }
 
@@ -571,9 +586,8 @@ string Builder::usagemsg;
 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);
@@ -610,7 +624,7 @@ void Builder::Loader::profile(const string &)
 
 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;