- list<ObjectFile *> objs;
- for(PathList::const_iterator i=files.begin(); i!=files.end(); ++i)
- {
- string ext=FS::extpart(FS::basename(*i));
- if((ext==".cpp" || ext==".cc" || ext==".c"))
- {
- SourceFile *src=new SourceFile(builder, *this, i->str());
- ObjectFile *obj=new ObjectFile(builder, *this, *src);
- objs.push_back(obj);
- }
- }
-
- list<FileTarget *> results;
- if(type==LIBRARY)
- {
- results.push_back(new SharedLibrary(builder, *this, objs));
- results.push_back(new StaticLibrary(builder, *this, objs));
- }
- else
- results.push_back(new Executable(builder, *this, objs));
+ FS::Path dir = FS::dirname(path);
+ string last = FS::basename(dir);
+ if(any_equals(overlays, last))
+ dir = FS::dirname(dir);