void Component::prepare()
{
- for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+ for(Package::Requirements::const_iterator i=requires.begin(); i!=requires.end(); ++i)
(*i)->prepare();
}
{
BuildInfo final_build_info;
- const PackageList &pkg_reqs = package.get_required_packages();
- PackageList direct_reqs = requires;
+ const Package::Requirements &pkg_reqs = package.get_required_packages();
+ Package::Requirements direct_reqs = requires;
direct_reqs.insert(direct_reqs.end(), pkg_reqs.begin(), pkg_reqs.end());
- PackageList all_reqs = direct_reqs;
- for(PackageList::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i)
+ 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 PackageList &reqs = (*i)->get_required_packages();
- for(PackageList::const_iterator j=reqs.begin(); j!=reqs.end(); ++j)
+ 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);
}
if(build_info.libmode<BuildInfo::DYNAMIC)
{
- for(PackageList::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i)
+ for(Package::Requirements::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i)
{
const BuildInfo &ebi = (*i)->get_exported_build_info();
build_info.libpath.insert(build_info.libpath.end(), ebi.libpath.begin(), ebi.libpath.end());
Builder &builder = package.get_builder();
const Toolchain &toolchain = builder.get_toolchain();
- PathList source_filenames = collect_source_files();
+ SourceList source_filenames = collect_source_files();
list<Target *> inst_list;
string inst_loc;
const Tool &tar = toolchain.get_tool("TAR");
list<Target *> files;
- for(PathList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
+ for(SourceList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
{
FileTarget *file = builder.get_vfs().get_target(*i);
if(!file)
else if(type==INSTALL)
{
inst_loc = name;
- for(PathList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
+ for(SourceList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
{
FileTarget *ft;
if(Target *tgt = builder.get_vfs().get_target(*i))
if(type==PROGRAM || type==LIBRARY || type==MODULE)
{
list<Target *> objs;
- for(PathList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
+ for(SourceList::const_iterator i=source_filenames.begin(); i!=source_filenames.end(); ++i)
{
string ext = FS::extpart(FS::basename(*i));
const Tool *tool = toolchain.get_tool_for_suffix(ext, true);
if(tool)
{
Target *src = tool->create_source(*this, *i);
+ if(!src)
+ continue;
+
if(tool->accepts_suffix(ext))
{
Target *obj = tool->create_target(*src);
objs.push_back(obj);
}
- if(type==LIBRARY && install && !dynamic_cast<FileTarget *>(src)->get_install_location().empty())
+ if(type==LIBRARY && install && dynamic_cast<FileTarget *>(src)->is_installable())
inst_list.push_back(src);
}
}
}
}
-PathList Component::collect_source_files() const
+Component::SourceList Component::collect_source_files() const
{
- PathList files;
- for(StringList::const_iterator i=sources.begin(); i!=sources.end(); ++i)
+ SourceList files;
+ for(SourceList::const_iterator i=sources.begin(); i!=sources.end(); ++i)
{
FS::Path path(*i);
if(FS::is_dir(path))