Package::Package(Builder &b, const string &n, const Path::Path &s):
builder(b),
name(n),
- source(s),
buildable(true),
+ source(s),
build_info_ready(false)
{ }
-Package::Package(Builder &b, const string &n, const vector<string> &info):
- builder(b),
- name(n),
- buildable(false),
- build_info_ready(false)
-{
- for(vector<string>::const_iterator i=info.begin(); i!=info.end(); ++i)
- {
- if(!i->compare(0, 2, "-I"))
- export_binfo.incpath.push_back(i->substr(2));
- else if(!i->compare(0, 2, "-D"))
- export_binfo.defines.push_back(i->substr(2));
- else if(!i->compare(0, 2, "-L"))
- export_binfo.libpath.push_back(i->substr(2));
- else if(!i->compare(0, 2, "-l"))
- export_binfo.libs.push_back(i->substr(2));
- }
-}
-
void Package::set_path(const Msp::Path::Path &p)
{
path=builder.get_cwd()/p;
void Package::resolve_refs()
{
- for(list<PackageRef>::iterator i=requires.begin(); i!=requires.end(); ++i)
+ for(PkgRefList::iterator i=requires.begin(); i!=requires.end(); ++i)
i->resolve();
for(ComponentList::iterator i=components.begin(); i!=components.end(); ++i)
i->resolve_refs();
if(buildable)
{
- for(list<PackageRef>::iterator i=requires.begin(); i!=requires.end(); ++i)
+ for(PkgRefList::iterator i=requires.begin(); i!=requires.end(); ++i)
{
Package *pkg=i->get_package();
if(!pkg)
return pkg;
}
+/*** private ***/
+
+Package::Package(Builder &b, const string &n, const vector<string> &info):
+ builder(b),
+ name(n),
+ buildable(false),
+ build_info_ready(false)
+{
+ for(vector<string>::const_iterator i=info.begin(); i!=info.end(); ++i)
+ {
+ if(!i->compare(0, 2, "-I"))
+ export_binfo.incpath.push_back(i->substr(2));
+ else if(!i->compare(0, 2, "-D"))
+ export_binfo.defines.push_back(i->substr(2));
+ else if(!i->compare(0, 2, "-L"))
+ export_binfo.libpath.push_back(i->substr(2));
+ else if(!i->compare(0, 2, "-l"))
+ export_binfo.libs.push_back(i->substr(2));
+ }
+}
+
void Package::init_buildable()
{
buildable=true;
if(flags&DATA)
config.add_option("includedir", "$prefix/share", "Data installation directory");*/
- for(list<PackageRef>::iterator i=requires.begin(); i!=requires.end(); ++i)
+ for(PkgRefList::iterator i=requires.begin(); i!=requires.end(); ++i)
config.add_option(i->get_name()+"_path", "", "Path for "+i->get_name());
config.load(source/".options.cache");