- for(StringList::iterator i=build_info.incpath.begin(); i!=build_info.incpath.end(); ++i)
- *i=(pkg.get_source() / *i).str();
- for(StringList::iterator i=build_info.libpath.begin(); i!=build_info.libpath.end(); ++i)
- *i=(pkg.get_source() / *i).str();
+ Package::Requirements all_reqs = direct_reqs;
+ for(Package::Requirements::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i)
+ {
+ BuildInfo::UpdateLevel level = BuildInfo::CHAINED;
+ if(find(direct_reqs.begin(), direct_reqs.end(), *i)!=direct_reqs.end())
+ level = BuildInfo::DEPENDENCY;
+ final_build_info.update_from((*i)->get_exported_build_info(), level);
+
+ const Package::Requirements &reqs = (*i)->get_required_packages();
+ for(Package::Requirements::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);
+ }
+
+ final_build_info.update_from(package.get_build_info());
+ final_build_info.update_from(build_info);
+ build_info = final_build_info;