3 This file is part of builder
4 Copyright © 2006-2007, 2009 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #include <msp/strings/lexicalcast.h>
9 #include <msp/strings/utils.h>
19 Package::Package(Builder &b, const string &n):
26 PackageList Package::collect_requires()
29 result.push_back(this);
30 for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
32 PackageList r=(*i)->collect_requires();
33 result.splice(result.end(), r);
42 void Package::configure(const StringMap &opts, unsigned flag)
47 if(builder.get_verbose()>=3)
48 cout<<"Configuring "<<name<<'\n';
50 do_configure(opts, flag);
55 for(PackageList::iterator i=requires.begin(); i!=requires.end(); ++i)
56 (*i)->configure(opts, flag&2);
64 Package::Loader::Loader(Package &p):
67 add("require", &Loader::require);
70 void Package::Loader::require(const string &n)
72 Package *req=pkg.builder.get_package(n);
74 pkg.requires.push_back(req);