3 This file is part of builder
4 Copyright © 2006-2007, 2009 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #include <msp/io/print.h>
9 #include <msp/strings/lexicalcast.h>
10 #include <msp/strings/utils.h>
18 Package::Package(Builder &b, const string &n):
25 PackageList Package::collect_requires()
28 result.push_back(this);
29 for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
31 PackageList r = (*i)->collect_requires();
32 result.splice(result.end(), r);
41 void Package::configure(const StringMap &opts, unsigned flag)
46 if(builder.get_verbose()>=3)
47 IO::print("Configuring %s\n", name);
49 do_configure(opts, flag);
54 for(PackageList::iterator i=requires.begin(); i!=requires.end(); ++i)
55 (*i)->configure(opts, flag&2);
63 Package::Loader::Loader(Package &p):
66 add("require", &Loader::require);
69 void Package::Loader::require(const string &n)
71 Package *req = pkg.builder.get_package(n);
73 pkg.requires.push_back(req);