]> git.tdb.fi Git - builder.git/blobdiff - source/csourcefile.cpp
Use Path objects to store include and library paths
[builder.git] / source / csourcefile.cpp
index 48935bde831b341148316fa9d5e4c29e9ec998b0..0ff4286c5cb87bb6270a5978c304c8969c29bed0 100644 (file)
@@ -37,8 +37,7 @@ void CSourceFile::find_depends()
        {
                IO::BufferedFile in(path.str());
 
-               if(builder.get_verbose()>=4)
-                       IO::print("Reading includes from %s\n", path.str());
+               builder.get_logger().log("files", format("Reading includes from %s", path.str()));
 
                Regex r_include("^[ \t]*#include[ \t]+([\"<].*)[\">]");
 
@@ -50,12 +49,13 @@ void CSourceFile::find_depends()
                deps_cache.set_deps(relname, includes);
        }
 
-       const StringList &incpath = comp->get_build_info().incpath;
+       const BuildInfo::PathList &incpath = comp->get_build_info().incpath;
+       BuildInfo::PathList local_incpath = incpath;
+       local_incpath.push_front(FS::dirname(path).str());
 
-       FS::Path dir = FS::dirname(path);
        for(list<string>::iterator i=includes.begin(); i!=includes.end(); ++i)
        {
-               Target *hdr = builder.get_vfs().find_header(*i, dir, incpath);
+               Target *hdr = builder.get_vfs().find_header(i->substr(1), ((*i)[0]=='"' ? local_incpath : incpath));
                if(hdr)
                        add_depend(hdr);
        }