install(false)
{ }
+void Component::resolve_refs()
+{
+ for(list<PackageRef>::iterator i=requires.begin(); i!=requires.end(); ++i)
+ i->resolve();
+}
+
void Component::create_build_info()
{
- build_info=pkg.get_build_info();
+ build_info.add(pkg.get_build_info());
+
+ for(list<PackageRef>::iterator i=requires.begin(); i!=requires.end(); ++i)
+ {
+ if(!i->get_package())
+ continue;
+ i->get_package()->create_build_info();
+ build_info.add(i->get_package()->get_exported_binfo());
+ }
+
build_info.unique();
}
add("source", &Loader::source);
add("install", &Component::install);
add("install_headers", &Component::install_headers);
+ add("build_info", &Loader::build_info);
+ add("require", &Loader::require);
}
void Component::Loader::source(const string &s)
{
comp.sources.push_back(comp.pkg.get_source()/s);
}
+
+void Component::Loader::require(const string &n)
+{
+ comp.requires.push_back(PackageRef(comp.pkg.get_builder(), n));
+}
+
+void Component::Loader::build_info()
+{
+ load_sub(comp.build_info);
+}