X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgnulinker.cpp;h=837e7c7e64ff5baed9926ab1db5006a8f924245f;hb=000deb52a1374bcedfec5d201c53c1842438ceba;hp=b2516d6394eab3ddec5733d10347e0d43923e721;hpb=7bcd4fef81679dedcabc5a58b12511a6b52c4fe4;p=builder.git diff --git a/source/gnulinker.cpp b/source/gnulinker.cpp index b2516d6..837e7c7 100644 --- a/source/gnulinker.cpp +++ b/source/gnulinker.cpp @@ -144,8 +144,11 @@ string GnuLinker::Linker::create_build_signature(const BuildInfo &binfo) const result += 'd'; if(binfo.strip) result += 's'; - result += ",l"; - result += join(binfo.libs.begin(), binfo.libs.end(), ",l"); + if(!binfo.libs.empty()) + { + result += ",l"; + result += join(binfo.libs.begin(), binfo.libs.end(), ",l"); + } return result; } @@ -246,6 +249,13 @@ Task *GnuLinker::Linker::run(const Target &target) const } } + 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")) + { + argv.push_back("-framework"); + argv.push_back(i->substr(0, i->size()-10)); + } + if(need_l_objc) argv.push_back("-lobjc"); if(static_link_ok)