]> git.tdb.fi Git - builder.git/blobdiff - source/filetarget.h
Improve cleaning
[builder.git] / source / filetarget.h
index 6d2480f7e75d9d64c795a4e075c2492664b32aab..851085ba040a1834c47a3967cfcec491a14efdf6 100644 (file)
@@ -14,11 +14,13 @@ protected:
        Msp::FS::Path path;
        Msp::Time::TimeStamp mtime;
        unsigned size;
+       Msp::FS::Path install_location;
 
        FileTarget(Builder &, const Msp::FS::Path &);
        FileTarget(Builder &, const SourcePackage &, const Msp::FS::Path &);
 private:
        void init(const SourcePackage *);
+       void stat();
        static std::string generate_name(Builder &, const SourcePackage *, const Msp::FS::Path &);
 
 public:
@@ -26,6 +28,9 @@ public:
        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.
        */
@@ -33,6 +38,17 @@ public:
 
 protected:
        virtual void check_rebuild();
+
+       virtual std::string create_build_signature() const;
+
+public:
+       virtual Task *build();
+
+protected:
+       virtual void build_finished(bool);
+
+public:
+       virtual void clean();
 };
 
 #endif