-/* $Id$
-
-This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef INSTALL_H_
#define INSTALL_H_
-#include "target.h"
+#include "sourcepackage.h"
+#include "filetarget.h"
/**
Represents the installation of a file.
*/
-class Install: public Target
+class Install: public FileTarget
{
+private:
+ FileTarget &source;
+ Msp::FS::Path link;
+
public:
- Install(Builder &, const Package &, Target &);
- const char *get_type() const { return "Install"; }
- void check_rebuild();
- Action *build();
+ Install(Builder &, const SourcePackage &, FileTarget &, const std::string & =std::string());
+ virtual const char *get_type() const { return "Install"; }
+ FileTarget &get_source() const { return source; }
+ virtual Target *get_real_target();
private:
- std::string generate_target_name(const Target &);
+ virtual void check_rebuild();
+ virtual Action *create_action();
+
+ static Msp::FS::Path generate_target_path(const FileTarget &i, const std::string &);
};
#endif