]> git.tdb.fi Git - builder.git/blobdiff - source/filetarget.h
Use default member initializers and constructor delegation
[builder.git] / source / filetarget.h
index 30cd3df3ec3fae9486761e8cf403c8df582dc9ce..aff1fb7a4081cad3bddb098281389bbe63d9861f 100644 (file)
@@ -13,13 +13,16 @@ class FileTarget: public Target
 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 &);
 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 &);
 
@@ -30,20 +33,22 @@ 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.
-       */
+       /// 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