-#include <fstream>
-#include <msp/regex++/regex++.h>
-#include "builder.h"
#include "component.h"
#include "sourcefile.h"
+#include "sourcepackage.h"
-using namespace std;
-using namespace Msp;
-
-#include <iostream>
-
-SourceFile::SourceFile(Builder &b, const Component *c, const string &n):
- Target(b, c?&c->get_package():0, n),
+SourceFile::SourceFile(Builder &b, const Component *c, const Msp::FS::Path &p):
+ FileTarget(b, (c ? &c->get_package() : 0), p),
comp(c)
{ }
-
-void SourceFile::find_depends()
-{
- ifstream in(name.c_str());
- if(!in) return;
-
- Regex r_include("^[ \t]*#include[ \t]+([\"<].*)[\">]");
-
- string line;
- while(getline(in, line))
- if(RegMatch match=r_include.match(line))
- includes.push_back(match[1].str());
-
- string path=name.substr(0, name.rfind('/'));
- for(list<string>::iterator i=includes.begin(); i!=includes.end(); ++i)
- {
- Target *hdr=builder.get_header(*i, path, comp->get_build_info().incpath);
- if(hdr)
- add_depend(hdr);
- }
-}