]> git.tdb.fi Git - builder.git/blob - source/csourcefile.h
Refactor transitive dependencies to work on all targets
[builder.git] / source / csourcefile.h
1 #ifndef CSOURCEFILE_H_
2 #define CSOURCEFILE_H_
3
4 #include <msp/io/base.h>
5 #include "sourcefile.h"
6
7 /**
8 Represents a C or C++ source file.
9 */
10 class CSourceFile: public SourceFile
11 {
12 public:
13         typedef std::list<std::string> IncludeList;
14
15 protected:
16         IncludeList includes;
17
18 public:
19         CSourceFile(Builder &, const Msp::FS::Path &);
20         CSourceFile(Builder &, const Component &, const Msp::FS::Path &);
21
22         virtual const char *get_type() const { return "CSourceFile"; }
23         const IncludeList &get_includes() const { return includes; }
24 protected:
25         virtual void parse_includes(Msp::IO::Base &);
26         virtual void find_dependencies();
27         virtual void modified();
28 };
29
30 #endif