X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flib%2Ffiletarget.h;h=4261cbb7e8617616e75b7240345457adef892cd4;hb=HEAD;hp=da165d0d39d1ebed128c83c0d31ce4f2a184139c;hpb=c8e829c219c65ff8e93b6c7b66212ff0876441c5;p=builder.git diff --git a/source/lib/filetarget.h b/source/lib/filetarget.h index da165d0..4261cbb 100644 --- a/source/lib/filetarget.h +++ b/source/lib/filetarget.h @@ -2,25 +2,25 @@ #define FILETARGET_H_ #include +#include "libbuilder_api.h" #include "target.h" /** An intermediate base class for targets that represent files. Almost all target classes are derived from this. */ -class FileTarget: public Target +class LIBBUILDER_API FileTarget: public Target { protected: Msp::FS::Path path; Msp::Time::TimeStamp mtime; unsigned size = 0; Msp::FS::Path install_location; - std::string install_filename; bool nested_build_sig = false; bool arch_in_build_sig = false; - FileTarget(Builder &b, const Msp::FS::Path &a): FileTarget(b, 0, a) { } - FileTarget(Builder &b, const SourcePackage &p, const Msp::FS::Path &a): FileTarget(b, &p, a) { } + FileTarget(Builder &b, const Msp::FS::Path &a); + FileTarget(Builder &b, const SourcePackage &p, const Msp::FS::Path &a); private: FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &); void stat(); @@ -33,12 +33,15 @@ public: bool is_installable() const { return !install_location.empty(); } const Msp::FS::Path &get_install_location() const { return install_location; } - const std::string &get_install_filename() const { return install_filename; } /// Changes the mtime of the target to the current time. void touch(); + FileTarget *get_real_target() override { return this; } + protected: + Target *resolve_transitive_dependency(Target &, Target &) const override; + void check_rebuild() override; virtual std::string create_build_signature() const;