X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstaticlibrary.h;h=98d299026bc366aed45ab21568530b02e82b84f2;hb=451ef4f33b5a57dcb56bd7cb671bed359ac86247;hp=9d0bbadb08dcd268f56b3e143b5b6f00b46884f0;hpb=338eefb513953ae55e8e3614c009c242ba8ad74e;p=builder.git diff --git a/source/staticlibrary.h b/source/staticlibrary.h index 9d0bbad..98d2990 100644 --- a/source/staticlibrary.h +++ b/source/staticlibrary.h @@ -1,7 +1,7 @@ #ifndef STATICLIBRARY_H_ #define STATICLIBRARY_H_ -#include "library.h" +#include "filetarget.h" class Component; class ObjectFile; @@ -9,18 +9,26 @@ 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 Component &, const std::list &); - - virtual const char *get_type() const { return "StaticLibrary"; } - const Component &get_component() const { return comp; } + StaticLibrary(Builder &b, const Msp::FS::Path &p): FileTarget(b, p) { } + StaticLibrary(Builder &, const Component &, const std::vector &); 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