]> git.tdb.fi Git - builder.git/blobdiff - source/csourcefile.cpp
Resolve a scoping problem in InternalTask::Worker
[builder.git] / source / csourcefile.cpp
index 553128743d8651e50cd0195f4c868727e312c2c3..13c74b9dcef247402490da7d7638de379c50f067 100644 (file)
@@ -48,14 +48,23 @@ void CSourceFile::find_dependencies()
                cache.set_values(this, "includes", includes);
        }
 
-       const BuildInfo::PathList &incpath = component->get_build_info().incpath;
+       const BuildInfo &build_info = component->get_build_info_for_path(path);
+       const BuildInfo::PathList &incpath = build_info.incpath;
        BuildInfo::PathList local_incpath = incpath;
+       local_incpath.insert(local_incpath.begin(), build_info.local_incpath.begin(), build_info.local_incpath.end());
        local_incpath.push_front(FS::dirname(path).str());
 
-       for(list<string>::iterator i=includes.begin(); i!=includes.end(); ++i)
+       for(IncludeList::iterator i=includes.begin(); i!=includes.end(); ++i)
        {
                Target *hdr = builder.get_vfs().find_header(i->substr(1), ((*i)[0]=='"' ? local_incpath : incpath));
                if(hdr)
                        add_dependency(*hdr);
        }
 }
+
+void CSourceFile::modified()
+{
+       includes.clear();
+       depends.clear();
+       find_dependencies();
+}