4 #include <msp/fs/path.h>
8 An intermediate base class for targets that represent files. Almost all target
9 classes are derived from this.
11 class FileTarget: public Target
15 Msp::Time::TimeStamp mtime;
17 Msp::FS::Path install_location;
18 std::string install_filename;
20 FileTarget(Builder &, const Msp::FS::Path &);
21 FileTarget(Builder &, const SourcePackage &, const Msp::FS::Path &);
23 void init(const SourcePackage *);
25 static std::string generate_name(Builder &, const SourcePackage *, const Msp::FS::Path &);
28 const Msp::FS::Path &get_path() const { return path; }
29 const Msp::Time::TimeStamp &get_mtime() const { return mtime; }
30 unsigned get_size() const { return size; }
32 bool is_installable() const { return !install_location.empty(); }
33 const Msp::FS::Path &get_install_location() const { return install_location; }
34 const std::string &get_install_filename() const { return install_filename; }
36 /// Changes the mtime of the target to the current time.
40 virtual void check_rebuild();
42 virtual std::string create_build_signature() const;
44 virtual void build(Task &);
46 virtual void build_finished(bool);