X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.cpp;h=321b954d4e96c59bbbdb9ae845465853a6e7da54;hb=c51e8844f19c31b2809ba459a1659d3b94a86f89;hp=97e52552b8d553ae3d360245a56bd15a440efc91;hpb=483add89e7f305642cc88a5f63a7741a15b6290e;p=builder.git diff --git a/source/objectfile.cpp b/source/objectfile.cpp index 97e5255..321b954 100644 --- a/source/objectfile.cpp +++ b/source/objectfile.cpp @@ -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);