X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexecutable.cpp;h=5d1e1c8f24fbf428a8dff009c886a3efde3f7c58;hb=be8a901dfc026f61db46d5d64a41cecc619bc97d;hp=e632937775abc1b73f3c2a798b21c2eda8a20443;hpb=445edbc3c42bbd7880cc414cf153ddfd196bfc1c;p=builder.git diff --git a/source/executable.cpp b/source/executable.cpp index e632937..5d1e1c8 100644 --- a/source/executable.cpp +++ b/source/executable.cpp @@ -1,4 +1,12 @@ -#include +/* $Id$ + +This file is part of builder +Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#include +#include #include "builder.h" #include "component.h" #include "executable.h" @@ -6,6 +14,7 @@ #include "link.h" #include "objectfile.h" #include "package.h" +#include "sharedlibrary.h" #include "staticlibrary.h" using namespace std; @@ -25,7 +34,9 @@ Finds and adds any required libraries to the dependencies. */ void Executable::find_depends() { - LibMode libmode=package->get_library_mode(); + LibMode libmode=comp.get_package().get_library_mode(); + if(dynamic_cast(this)) + libmode=DYNAMIC; list queue; list dep_libs; @@ -36,12 +47,11 @@ void Executable::find_depends() queue.erase(queue.begin()); const StringList &libpath=c->get_build_info().libpath; - const string &arch=c->get_package().get_arch(); const list &libs=c->get_build_info().libs; for(StringList::const_iterator i=libs.begin(); i!=libs.end(); ++i) { - Target *lib=builder.get_library(*i, arch, libpath, libmode); + Target *lib=builder.get_library(*i, libpath, libmode); if(lib) { dep_libs.push_back(lib); @@ -52,8 +62,7 @@ void Executable::find_depends() queue.push_back(&stlib->get_component()); } else - cout<<"Couldn't find library "<<*i<<" for "<