throw invalid_argument("GnuLinker::create_target");
list<ObjectFile *> objs;
Linker *linker = default_linker;
- for(list<Target *>::const_iterator i=sources.begin(); i!=sources.end(); ++i)
+ for(Target *s: sources)
{
- if(ObjectFile *obj = dynamic_cast<ObjectFile *>(*i))
+ if(ObjectFile *obj = dynamic_cast<ObjectFile *>(s))
{
objs.push_back(obj);
if(obj->get_tool()->get_tag()=="CXX")
argv.push_back("-Wl,-rpath-link,"+lib_dir.str());
}
- for(BuildInfo::PathList::const_iterator i=binfo.libpath.begin(); i!=binfo.libpath.end(); ++i)
- argv.push_back("-L"+i->str());
+ for(const FS::Path &p: binfo.libpath)
+ argv.push_back("-L"+p.str());
if(binfo.strip)
argv.push_back("-s");
if(binfo.threads && architecture->get_system()!="windows" && architecture->get_system()!="darwin")
argv.push_back("-o");
argv.push_back(relative(bin.get_path(), work_dir).str());
- for(BuildInfo::WordList::const_iterator i=binfo.keep_symbols.begin(); i!=binfo.keep_symbols.end(); ++i)
- argv.push_back("-u"+*i);
+ for(const string &s: binfo.keep_symbols)
+ argv.push_back("-u"+s);
bool static_link_ok = (binfo.libmode<=BuildInfo::STATIC);
- const Target::Dependencies &depends = target.get_dependencies();
- for(Target::Dependencies::const_iterator i=depends.begin(); i!=depends.end(); ++i)
+ for(Target *d: target.get_dependencies())
{
- FileTarget *file = dynamic_cast<FileTarget *>(*i);
- Target *tgt = (*i)->get_real_target();
+ FileTarget *file = dynamic_cast<FileTarget *>(d);
+ Target *tgt = d->get_real_target();
if(ObjectFile *obj = dynamic_cast<ObjectFile *>(tgt))
argv.push_back(relative(obj->get_path(), work_dir).str());
}
}
- for(BuildInfo::WordList::const_iterator i=binfo.libs.begin(); i!=binfo.libs.end(); ++i)
- if(i->size()>10 && !i->compare(i->size()-10, 10, ".framework"))
+ for(const string &l: binfo.libs)
+ if(l.size()>10 && !l.compare(l.size()-10, 10, ".framework"))
{
argv.push_back("-framework");
- argv.push_back(i->substr(0, i->size()-10));
+ argv.push_back(l.substr(0, l.size()-10));
}
if(static_link_ok)
{
if(compiler_tag=="CXX")
{
- BuildInfo::LibModeMap::const_iterator i = binfo.libmodes.find("stdc++");
+ auto i = binfo.libmodes.find("stdc++");
if(i!=binfo.libmodes.end() && i->second<=BuildInfo::STATIC)
argv.push_back("-static-libstdc++");
}