protected:
Msp::FS::Path path;
Msp::Time::TimeStamp mtime;
- unsigned size;
+ 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 &, const Msp::FS::Path &);
- FileTarget(Builder &, const SourcePackage &, const Msp::FS::Path &);
+ 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) { }
private:
- void init(const SourcePackage *);
+ FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &);
void stat();
static std::string generate_name(Builder &, const SourcePackage *, const Msp::FS::Path &);
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.
- */
+ /// Changes the mtime of the target to the current time.
void touch();
protected:
- virtual void check_rebuild();
+ void check_rebuild() override;
-public:
- virtual Task *build();
+ virtual std::string create_build_signature() const;
-protected:
- virtual void build_finished(bool);
+ void build(Task &) override;
+
+ void build_finished(bool) override;
+
+public:
+ void clean() override;
};
#endif