- string tarname = name;
- if(name=="@src")
- tarname = pkg.get_name()+"-"+pkg.get_version();
- TarBall *result = new TarBall(builder, pkg, tarname);
-
- if(name=="@src")
- {
- const TargetMap &targets = builder.get_targets();
- for(TargetMap::const_iterator i=targets.begin(); i!=targets.end(); ++i)
- if(i->second->get_package()==&pkg && !i->second->is_buildable())
- result->add_depend(i->second);
- files.push_back(pkg.get_source()/"Build");
- }
-
- for(PathList::const_iterator i=files.begin(); i!=files.end(); ++i)
- {
- FileTarget *ft;
- if(Target *tgt = builder.get_target(i->str()))
- ft = dynamic_cast<FileTarget *>(tgt);
- else
- ft = new File(builder, *i);
- result->add_depend(ft);
- }
-
- Target *tarbls_tgt = builder.get_target("tarballs");
- tarbls_tgt->add_depend(result);
+ FS::Path dir = FS::dirname(path);
+ string last = FS::basename(dir);
+ if(any_equals(overlays, last))
+ dir = FS::dirname(dir);