X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpackage.cpp;h=d937daf7d920a7a5bd760ced3a0ad281184e42a4;hb=f1c967215e6b08095bdf07518472beca3067ec37;hp=3072fd6a65ccd1d6a6303d54b80ffdb789ca35da;hpb=0d80cabf649b931b26e7055385156c75a7385d35;p=builder.git diff --git a/source/package.cpp b/source/package.cpp index 3072fd6..d937daf 100644 --- a/source/package.cpp +++ b/source/package.cpp @@ -7,19 +7,6 @@ using namespace std; using namespace Msp; -PackageRef::PackageRef(Builder &b, const string &n): - builder(b), - name(n), - package(0) -{ } - -Package *PackageRef::resolve() -{ - if(!package) - package=builder.get_package(name); - return package; -} - Package::Package(Builder &b, const string &n, const Path::Path &s): builder(b), name(n), @@ -107,7 +94,8 @@ void Package::create_build_info() void Package::process_options(const RawOptionMap &opts) { - config.process(opts); + if(config.process(opts)) + config.save(source/".options.cache"); } Package *Package::create(Builder &b, const string &name) @@ -126,6 +114,8 @@ Package *Package::create(Builder &b, const string &name) info.push_back("-lGL"); else if(name=="pthread") info.push_back("-lpthread"); + else if(name=="gmpxx") + info.push_back("-lgmpxx"); else return 0; } @@ -156,6 +146,8 @@ void Package::init_buildable() config.add_option("includedir", "$prefix/lib", "Library installation directory"); if(flags&DATA) config.add_option("includedir", "$prefix/share", "Data installation directory");*/ + + config.load(source/".options.cache"); } unsigned Package::get_install_flags() @@ -186,6 +178,7 @@ Package::Loader::Loader(Package &p): add("program", &Loader::program); add("library", &Loader::library); add("headers", &Loader::headers); + add("build_info", &Loader::build_info); } Package::Loader::~Loader() @@ -218,3 +211,8 @@ void Package::Loader::headers(const string &n) load_sub(prog); pkg.components.push_back(prog); } + +void Package::Loader::build_info() +{ + load_sub(pkg.build_info); +}