]> git.tdb.fi Git - builder.git/blobdiff - source/filetarget.h
Force shared linking on Android
[builder.git] / source / filetarget.h
index 7d42c91c06e67b7fbe2a97e4bf9b3542f5be810d..976590f4b67d15a96da867e046d4e9ac62fa3354 100644 (file)
@@ -14,22 +14,41 @@ protected:
        Msp::FS::Path path;
        Msp::Time::TimeStamp mtime;
        unsigned size;
+       Msp::FS::Path install_location;
+       std::string install_filename;
+       bool nested_build_sig;
+       bool arch_in_build_sig;
+
+       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 &);
 
-       FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &);
 public:
        const Msp::FS::Path &get_path() const { return path; }
        const Msp::Time::TimeStamp &get_mtime() const { return mtime; }
        unsigned get_size() const { return size; }
 
-       /**
-       Changes the mtime of the target to the current time.
-       */
+       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();
 
 protected:
        virtual void check_rebuild();
-private:
-       static std::string generate_name(const SourcePackage *, const Msp::FS::Path &);
+
+       virtual std::string create_build_signature() const;
+
+       virtual void build(Task &);
+
+       virtual void build_finished(bool);
+
+public:
+       virtual void clean();
 };
 
 #endif