]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.cpp
Add a feature for overlay source directories
[builder.git] / source / objectfile.cpp
index 97e52552b8d553ae3d360245a56bd15a440efc91..321b954d4e96c59bbbdb9ae845465853a6e7da54 100644 (file)
@@ -65,6 +65,19 @@ void ObjectFile::find_dependencies(FileTarget *tgt)
                                FS::Path displaced = tgt->get_path()/FS::relative(file->get_path(), rtgt->get_path());
                                if(Target *ddep = builder.get_vfs().get_target(displaced))
                                        deps_to_add.push_back(ddep);
+                               else
+                               {
+                                       const Component *tcomp = file->get_component();
+                                       const Component::OverlayList &overlays = tcomp->get_overlays();
+                                       string last_dir = FS::basename(FS::dirname(displaced));
+                                       for(Component::OverlayList::const_iterator j=overlays.begin(); j!=overlays.end(); ++j)
+                                               if(last_dir==*j)
+                                               {
+                                                       displaced = displaced.subpath(0, displaced.size()-2)/FS::basename(file->get_path());
+                                                       if((ddep = builder.get_vfs().get_target(displaced)))
+                                                               deps_to_add.push_back(ddep);
+                                               }
+                               }
                        }
                        else
                                deps_to_add.push_back(*i);