-Executable::Executable(Builder &b, const Component &c, const list<ObjectFile *> &objs):
- Target(b, &c.get_package(), generate_target_name(c)),
- comp(c)
-{
- buildable=true;
- for(list<ObjectFile *>::const_iterator i=objs.begin(); i!=objs.end(); ++i)
- add_depend(*i);
-}
-
-/**
-Finds and adds any required libraries to the dependencies.
-*/
-void Executable::find_depends()
-{
- LibMode libmode=comp.get_package().get_library_mode();
-
- list<const Component *> queue;
- list<Target *> dep_libs;
- queue.push_back(&comp);
- while(!queue.empty())
- {
- const Component *c=queue.front();
- queue.erase(queue.begin());
-
- const StringList &libpath=c->get_build_info().libpath;
-
- const list<string> &libs=c->get_build_info().libs;
- for(StringList::const_iterator i=libs.begin(); i!=libs.end(); ++i)
- {
- Target *lib=builder.get_library(*i, libpath, libmode);
- if(lib)
- {
- dep_libs.push_back(lib);