+/* $Id$
+
+This file is part of builder
+Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
#ifndef SOURCEFILE_H_
#define SOURCEFILE_H_
-#include "target.h"
+#include "filetarget.h"
class Component;
-class SourceFile: public Target
+/**
+Represents a C or C++ source file.
+*/
+class SourceFile: public FileTarget
{
-public:
- SourceFile(Builder &, const Component *, const std::string &);
- const char *get_type() const { return "SourceFile"; }
- void find_depends();
- Action *build() { rebuild=false; return 0; }
private:
const Component *comp;
- std::list<std::string> includes;
+ StringList includes;
- void check_rebuild();
+protected:
+ SourceFile(Builder &, const Msp::FS::Path &);
+public:
+ SourceFile(Builder &, const Component &, const Msp::FS::Path &);
+ virtual const char *get_type() const { return "SourceFile"; }
+ const StringList &get_includes() const { return includes; }
+ const Component *get_component() const { return comp; }
+ virtual void find_depends();
+private:
+ virtual Action *create_action() { return 0; }
};
#endif