#ifndef STATICLIBRARY_H_
#define STATICLIBRARY_H_
-#include "library.h"
+#include "filetarget.h"
class Component;
class ObjectFile;
/**
A static library target.
*/
-class StaticLibrary: public Library
+class StaticLibrary: public FileTarget
{
+private:
+ /* 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"; }
private:
- static Msp::FS::Path generate_target_path(const Component &);
+ static std::string generate_filename(const Component &);
+
+public:
+ const char *get_type() const override { return "StaticLibrary"; }
+
+ void add_required_library(const std::string &);
+ void add_library_path(const Msp::FS::Path &);
+ void collect_build_info(BuildInfo &) const override;
};
#endif