]> git.tdb.fi Git - builder.git/blobdiff - source/builder.cpp
Use ObjectLoaders where appropriate
[builder.git] / source / builder.cpp
index 4ca2e43ec87bdcef8942f49e4fd85aebafd25dcf..94bbce04d3a552480994b2d4597fdeb5e154f3b1 100644 (file)
@@ -183,14 +183,6 @@ Builder::Builder(int argc, char **argv):
                        }
        }
 
-       toolchain.add_tool(new GnuCCompiler(*this, *current_arch));
-       toolchain.add_tool(new GnuCxxCompiler(*this, *current_arch));
-       toolchain.add_tool(new GnuLinker(*this, *current_arch));
-       toolchain.add_tool(new GnuArchiver(*this, *current_arch));
-       toolchain.add_tool(new Copy(*this));
-       toolchain.add_tool(new Tar(*this));
-       toolchain.add_tool(new PkgConfigGenerator(*this));
-
        if(prfx.empty())
        {
                if(current_arch->is_native())
@@ -211,6 +203,14 @@ Builder::Builder(int argc, char **argv):
                vector<string> warns = split(*i, ',');
                warnings.insert(warnings.end(), warns.begin(), warns.end());
        }
+
+       toolchain.add_tool(new GnuCCompiler(*this, *current_arch));
+       toolchain.add_tool(new GnuCxxCompiler(*this, *current_arch));
+       toolchain.add_tool(new GnuLinker(*this, *current_arch));
+       toolchain.add_tool(new GnuArchiver(*this, *current_arch));
+       toolchain.add_tool(new Copy(*this));
+       toolchain.add_tool(new Tar(*this));
+       toolchain.add_tool(new PkgConfigGenerator(*this));
 }
 
 Builder::~Builder()
@@ -606,7 +606,7 @@ string Builder::helpmsg;
 
 
 Builder::Loader::Loader(Builder &b, const FS::Path &s):
-       bld(b),
+       DataFile::ObjectLoader<Builder>(b),
        src(s)
 {
        add("binary_package", &Loader::binpkg);
@@ -617,13 +617,13 @@ Builder::Loader::Loader(Builder &b, const FS::Path &s):
 
 void Builder::Loader::binpkg(const string &n)
 {
-       BinaryPackage *pkg = new BinaryPackage(bld, n);
+       BinaryPackage *pkg = new BinaryPackage(obj, n);
        load_sub(*pkg);
 }
 
 void Builder::Loader::cross_prefix(const string &a, const string &p)
 {
-       bld.cross_prefixes[a] = p;
+       obj.cross_prefixes[a] = p;
 }
 
 void Builder::Loader::profile(const string &n)
@@ -631,14 +631,14 @@ 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);
 }