-/* $Id$
+#ifndef STATICLIBRARY_H_
+#define STATICLIBRARY_H_
-This file is part of builder
-Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#ifndef STATICLIB_H_
-#define STATICLIB_H_
-
-#include "library.h"
+#include "filetarget.h"
class Component;
class ObjectFile;
/**
A static library target.
*/
-class StaticLibrary: public Library
+class StaticLibrary: public FileTarget
{
private:
- const Component ∁
+ /* TODO this really belongs in a Component, but some refactoring is required
+ to allow non-builder packages to have components. Rename BinaryPackage to
+ ExternalPackage, add BuildableComponent and ExternalComponent classes. */
+ BuildInfo build_info;
public:
+ StaticLibrary(Builder &, const Msp::FS::Path &);
StaticLibrary(Builder &, const Component &, const std::list<ObjectFile *> &);
- virtual const char *get_type() const { return "StaticLibrary"; }
- const Component &get_component() const { return comp; }
private:
- virtual Action *create_action();
+ static std::string generate_filename(const Component &);
+
+public:
+ const char *get_type() const override { return "StaticLibrary"; }
- static Msp::FS::Path generate_target_path(const Component &);
+ void add_required_library(const std::string &);
+ void add_library_path(const Msp::FS::Path &);
+ void collect_build_info(BuildInfo &) const override;
};
#endif