- // XXX This may pull in some unnecessary libpaths too. More thought required.
- PackageList reqs=pkg.collect_requires();
- for(PackageList::iterator i=reqs.begin(); i!=reqs.end(); ++i)
- {
- const BuildInfo &ebi=(*i)->get_exported_binfo();
- build_info.libpath.insert(build_info.libpath.end(), ebi.libpath.begin(), ebi.libpath.end());
- }
+ BuildInfo::UpdateLevel level = BuildInfo::CHAINED;
+ if(find(direct_reqs.begin(), direct_reqs.end(), *i)!=direct_reqs.end())
+ level = BuildInfo::DEPENDENCY;
+ build_info.update_from((*i)->get_exported_binfo(), level);
+
+ const PackageList &reqs = (*i)->get_requires();
+ for(PackageList::const_iterator j=reqs.begin(); j!=reqs.end(); ++j)
+ if(find(all_reqs.begin(), all_reqs.end(), *j)==all_reqs.end())
+ all_reqs.push_back(*j);