X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgnulinker.cpp;h=21b765bd25f4ef41b139beaa06f3c58671252581;hb=a876c04c49ba89497be5d2e80d6e97543dba4f07;hp=ede0119aeb44dec627cd37d39e14e15ad108420f;hpb=a957405689fafa1afc233182a3756e36ea34281c;p=builder.git diff --git a/source/gnulinker.cpp b/source/gnulinker.cpp index ede0119..21b765b 100644 --- a/source/gnulinker.cpp +++ b/source/gnulinker.cpp @@ -92,7 +92,7 @@ Target *GnuLinker::create_install(Target &target) const const Tool © = builder.get_toolchain().get_tool("CP"); InstalledFile *inst_tgt = dynamic_cast(copy.create_target(target)); if(architecture->get_system()=="windows") - builder.add_installed_target(*shlib->get_import_library()); + builder.get_build_graph().add_installed_target(*shlib->get_import_library()); else { const Pattern &pattern = architecture->get_shared_library_patterns().front(); @@ -197,12 +197,13 @@ Task *GnuLinker::Linker::run(const Target &target) const const Target::Dependencies &depends = target.get_dependencies(); for(Target::Dependencies::const_iterator i=depends.begin(); i!=depends.end(); ++i) { + FileTarget *file = dynamic_cast(*i); Target *tgt = (*i)->get_real_target(); if(ObjectFile *obj = dynamic_cast(tgt)) argv.push_back(relative(obj->get_path(), work_dir).str()); else if(StaticLibrary *stlib = dynamic_cast(tgt)) - argv.push_back(stlib->get_path().str()); + argv.push_back((file?file:stlib)->get_path().str()); else if(SharedLibrary *shlib = dynamic_cast(tgt)) { argv.push_back("-l"+shlib->get_libname()); @@ -214,7 +215,7 @@ Task *GnuLinker::Linker::run(const Target &target) const if(shlib) argv.push_back("-l"+shlib->get_libname()); else - argv.push_back(imp->get_path().str()); + argv.push_back((file?file:imp)->get_path().str()); static_link_ok = false; } }