]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.cpp
Fix whitespace errors
[builder.git] / source / objectfile.cpp
index fff1309057916baefffe63bf4ce8192469796647..cee8c87d2d6078b90210aa81615d48bd0db0aaf9 100644 (file)
@@ -11,7 +11,7 @@ using namespace Msp;
 
 ObjectFile::ObjectFile(Builder &b, const Component &c, SourceFile &s):
        FileTarget(b, c.get_package(), generate_target_path(c, s.get_path())),
-       source(s)       
+       source(s)
 {
        component = &c;
        add_dependency(source);
@@ -29,7 +29,7 @@ FS::Path ObjectFile::generate_target_path(const Component &comp, const FS::Path
                if(*i!=".")
                        fn += *i;
        }
-       return pkg.get_temp_dir()/comp.get_name()/(FS::basepart(fn)+".o");
+       return pkg.get_temp_directory()/comp.get_name()/(FS::basepart(fn)+".o");
 }
 
 void ObjectFile::find_dependencies()
@@ -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);