X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexecutable.cpp;h=630ac71f717e639173cc47ea3b74a7df28b84ffb;hb=b0eb979b0dc79269cb3bb5bb2e67ef4e80689cfe;hp=2dfeee8affbbbce98ee5a812da75433ca60d32b2;hpb=4dc31cca056ea293d320928f61fef0558089d32d;p=builder.git diff --git a/source/executable.cpp b/source/executable.cpp index 2dfeee8..630ac71 100644 --- a/source/executable.cpp +++ b/source/executable.cpp @@ -1,5 +1,7 @@ +#include "builder.h" #include "component.h" #include "executable.h" +#include "link.h" #include "objectfile.h" #include "package.h" @@ -9,10 +11,29 @@ Executable::Executable(Builder &b, const Component &c, const list Target(b, &c.get_package(), generate_target_name(c)), comp(c) { + buildable=true; for(list::const_iterator i=objs.begin(); i!=objs.end(); ++i) add_depend(*i); } +void Executable::find_depends() +{ + const list &libs=comp.get_build_info().libs; + for(list::const_iterator i=libs.begin(); i!=libs.end(); ++i) + { + Target *lib=builder.get_library(*i, comp.get_build_info().libpath); + if(lib) + add_depend(lib); + } + + deps_ready=true; +} + +Action *Executable::build() +{ + return Target::build(new Link(builder, *this, comp));; +} + string Executable::generate_target_name(const Component &comp) { string prefix;