X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffiletarget.h;h=2319066b05acbb6994cc2082365ad8fd06449091;hb=c63d5e1c1a1b3c095a94d1e21a302aaa694dd656;hp=22df5206fa6ada3b71af375e3e8f8807904338fc;hpb=f0c501af5d99233efd3a45076ffbe69a71294863;p=builder.git diff --git a/source/filetarget.h b/source/filetarget.h index 22df520..2319066 100644 --- a/source/filetarget.h +++ b/source/filetarget.h @@ -14,16 +14,22 @@ protected: Msp::FS::Path path; Msp::Time::TimeStamp mtime; unsigned size; + Msp::FS::Path install_location; - FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &); + FileTarget(Builder &, const Msp::FS::Path &); + FileTarget(Builder &, const SourcePackage &, const Msp::FS::Path &); private: - static std::string generate_name(const SourcePackage *, const Msp::FS::Path &); + void init(const SourcePackage *); + static std::string generate_name(Builder &, const SourcePackage *, const Msp::FS::Path &); public: const Msp::FS::Path &get_path() const { return path; } const Msp::Time::TimeStamp &get_mtime() const { return mtime; } unsigned get_size() const { return size; } + bool is_installable() const { return !install_location.empty(); } + const Msp::FS::Path &get_install_location() const { return install_location; } + /** Changes the mtime of the target to the current time. */ @@ -31,6 +37,9 @@ public: protected: virtual void check_rebuild(); + +public: + virtual Task *build(); }; #endif