X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexecutable.cpp;h=50ac3d3cbc60a9d4276f9662e63843527d90b566;hb=242c55b17e6608b29a77ca17a5b677e202a3ca90;hp=ea2f4e0204684cb94ea25799fcd57e50a8029040;hpb=0f5283a54fd188072eca23fbd980a43c6c869913;p=builder.git diff --git a/source/executable.cpp b/source/executable.cpp index ea2f4e0..50ac3d3 100644 --- a/source/executable.cpp +++ b/source/executable.cpp @@ -1,11 +1,11 @@ /* $Id$ This file is part of builder -Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions +Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ -#include +#include #include #include "builder.h" #include "component.h" @@ -14,6 +14,7 @@ Distributed under the LGPL #include "link.h" #include "objectfile.h" #include "package.h" +#include "sharedlibrary.h" #include "staticlibrary.h" using namespace std; @@ -28,12 +29,11 @@ Executable::Executable(Builder &b, const Component &c, const list add_depend(*i); } -/** -Finds and adds any required libraries to the dependencies. -*/ void Executable::find_depends() { LibMode libmode=comp.get_package().get_library_mode(); + if(dynamic_cast(this)) + libmode=DYNAMIC; list queue; list dep_libs; @@ -59,7 +59,7 @@ void Executable::find_depends() queue.push_back(&stlib->get_component()); } else - builder.problem(comp.get_package().get_name(), format("Couldn't find library %s for %s", *i, basename(name))); + builder.problem(comp.get_package().get_name(), format("Couldn't find library %s for %s", *i, FS::basename(name))); } } @@ -77,15 +77,11 @@ void Executable::find_depends() deps_ready=true; } -Action *Executable::build() +Action *Executable::create_action() { - return Target::build(new Link(builder, *this));; + return new Link(builder, *this); } -/** -Returns the name for the executable. We can't do this in the constructor since -we need to pass the value to the Target c'tor. -*/ string Executable::generate_target_name(const Component &c) { const SourcePackage &pkg=c.get_package();