- BinaryPackage *bpkg=dynamic_cast<BinaryPackage *>(*i);
- if(bpkg && bpkg->get_need_path())
- bpkg->set_path(config.get_option(bpkg->get_name()+"_path").value);
- }
-
- deps_cache.load();
-}
-
-void SourcePackage::init_config()
-{
- config.add_option("profile", "default", "Configuration profile");
- config.add_option("tempdir", "temp", "Directory for storing temporary files");
- config.add_option("outdir", ".", "Directory to put build results in");
- config.add_option("optimize", "0", "Apply compiler optimizations");
- config.add_option("strip", "0", "Strip symbols from programs");
- config.add_option("debug", "0", "Produce debugging symbols");
- config.add_option("cpu", "none", "CPU type to optimize for");
- config.add_option("staticlibs", "local", "Use static libraries");
-
- for(FeatureList::iterator i=features.begin(); i!=features.end(); ++i)
- config.add_option("with_"+i->name, "0", i->descr);
-
- for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
- {
- BinaryPackage *bpkg=dynamic_cast<BinaryPackage *>(*i);
- if(bpkg && bpkg->get_need_path())
- config.add_option(bpkg->get_name()+"_path", "/usr", "Path for "+bpkg->get_name());
- }
-}
-
-void SourcePackage::create_build_info()
-{
- for(PackageList::iterator i=base_reqs.begin(); i!=base_reqs.end(); ++i)
- {
- const BuildInfo &ebi=(*i)->get_exported_binfo();
- build_info.add(ebi);
-
- export_binfo.cflags.insert(export_binfo.cflags.end(), ebi.cflags.begin(), ebi.cflags.end());
- export_binfo.incpath.insert(export_binfo.incpath.end(), ebi.incpath.begin(), ebi.incpath.end());
- export_binfo.defines.insert(export_binfo.defines.end(), ebi.defines.begin(), ebi.defines.end());
- }
-
- // XXX Currently, a package-specific settings will override cmdline. This might or might not be desirable.
- const StringList &warnings=builder.get_warnings();
- build_info.warnings.insert(build_info.warnings.begin(), warnings.begin(), warnings.end());
-
- unsigned flags=get_install_flags();
-
- build_info.incpath.push_back((builder.get_prefix()/"include").str());
- build_info.libpath.push_back((builder.get_prefix()/"lib").str());
-
- if(flags&INCLUDE)