+/* $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;
+ buildable = true;
for(list<ObjectFile *>::const_iterator i=objs.begin(); i!=objs.end(); ++i)
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_out_dir()/("lib"+c.get_name()+".a")).str();
+ return c.get_package().get_out_dir()/("lib"+c.get_name()+".a");
}