-/* $Id$
-
-This file is part of builder
-Copyright © 2009 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef FILETARGET_H_
#define FILETARGET_H_
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 Package *, 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();
+
+ virtual std::string create_build_signature() const;
+
+ virtual void build(Task &);
+
+ virtual void build_finished(bool);
+
+public:
+ virtual void clean();
};
#endif