X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstaticlibrary.h;h=26d33e350b5354ff641f95842c84703f71ad96e5;hb=ba75b70d983e1af41cd96a9d95d03e03a0edbc00;hp=f7f178a7306c5649f049be7c5d6002092d07d9a4;hpb=4fcc283a4bb1f695bd124006906bcdaba053193f;p=builder.git diff --git a/source/staticlibrary.h b/source/staticlibrary.h index f7f178a..26d33e3 100644 --- a/source/staticlibrary.h +++ b/source/staticlibrary.h @@ -1,22 +1,34 @@ -#ifndef STATICLIB_H_ -#define STATICLIB_H_ +#ifndef STATICLIBRARY_H_ +#define STATICLIBRARY_H_ -#include "target.h" +#include "filetarget.h" class Component; class ObjectFile; -class StaticLibrary: public Target +/** +A static library target. +*/ +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 &); - const char *get_type() const { return "StaticLibrary"; } - const Component &get_component() const { return comp; } - Action *build(); private: - const Component ∁ + static std::string generate_filename(const Component &); + +public: + virtual const char *get_type() const { return "StaticLibrary"; } - std::string generate_target_name(const Component &); + void add_required_library(const std::string &); + void add_library_path(const Msp::FS::Path &); + virtual void collect_build_info(BuildInfo &) const; }; #endif