]> git.tdb.fi Git - builder.git/blobdiff - source/staticlibrary.cpp
Rework the Target class hierarchy
[builder.git] / source / staticlibrary.cpp
index df0cc7cb5811e9b2386f7fa398d9356a91ab1906..b7e4eff1d43941391393986f92c1acecd1bdab43 100644 (file)
@@ -1,13 +1,21 @@
+/* $Id$
+
+This file is part of builder
+Copyright © 2006-2009  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "archive.h"
 #include "component.h"
 #include "objectfile.h"
-#include "package.h"
+#include "sourcepackage.h"
 #include "staticlibrary.h"
 
 using namespace std;
 
-StaticLibrary::StaticLibrary(Builder &b, const Component &c, const std::list<ObjectFile *> &objs):
-       Target(b, &c.get_package(), generate_target_name(c)),
+StaticLibrary::StaticLibrary(Builder &b, const Component &c, const list<ObjectFile *> &objs):
+       FileTarget(b, &c.get_package(), generate_target_path(c)),
+       Library(b, package, path, c.get_name()),
        comp(c)
 {
        buildable=true;
@@ -15,12 +23,12 @@ StaticLibrary::StaticLibrary(Builder &b, const Component &c, const std::list<Obj
                add_depend(*i);
 }
 
-Action *StaticLibrary::build()
+Action *StaticLibrary::create_action()
 {
-       return Target::build(new Archive(builder, *this));;
+       return new Archive(builder, *this);
 }
 
-string StaticLibrary::generate_target_name(const Component &c)
+Msp::FS::Path StaticLibrary::generate_target_path(const Component &c)
 {
-       return (c.get_package().get_source()/("lib"+c.get_name()+".a")).str();
+       return c.get_package().get_out_dir()/("lib"+c.get_name()+".a");
 }