X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexecutable.cpp;h=fb1edfb2f2193b34b9f46ff35d0b95817a66b8a4;hb=4fcc283a4bb1f695bd124006906bcdaba053193f;hp=156823340a533849346e9425a54d0d59eb35e0ca;hpb=59ac0a44d6edf179c01604c6ced744873213f855;p=builder.git diff --git a/source/executable.cpp b/source/executable.cpp index 1568233..fb1edfb 100644 --- a/source/executable.cpp +++ b/source/executable.cpp @@ -1,3 +1,4 @@ +#include "builder.h" #include "component.h" #include "executable.h" #include "link.h" @@ -15,21 +16,33 @@ Executable::Executable(Builder &b, const Component &c, const list 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));; + return Target::build(new Link(builder, *this));; } -string Executable::generate_target_name(const Component &comp) +string Executable::generate_target_name(const Component &c) { - string prefix; - string suffix; + string prefix,suffix; - if(comp.get_type()==Component::LIBRARY) + if(c.get_type()==Component::LIBRARY) { prefix="lib"; suffix=".so"; } - return (comp.get_package().get_source()/(prefix+comp.get_name()+suffix)).str(); + return (c.get_package().get_source()/(prefix+c.get_name()+suffix)).str(); }