diff --git a/source/dub/generators/monod.d b/source/dub/generators/monod.d
index 4858c56..e3db7e4 100644
--- a/source/dub/generators/monod.d
+++ b/source/dub/generators/monod.d
@@ -217,6 +217,18 @@
bool[const(Package)] visited;
+ void generateSourceEntry(Path path, Path base_path)
+ {
+ auto rel_path = path.relativeTo(pack.path);
+ if( base_path == pack.path || path.relativeTo(base_path).external ){
+ sln.formattedWrite(" \n", rel_path.toNativeString());
+ } else {
+ sln.formattedWrite(" \n", rel_path.toNativeString());
+ sln.formattedWrite(" %s\n", path.relativeTo(base_path).toNativeString());
+ sln.formattedWrite(" \n");
+ }
+ }
+
void generateSources(in Package p)
{
if( p in visited ) return;
@@ -225,10 +237,10 @@
foreach( s; p.sources ){
if( p !is m_app.mainPackage && s == Path("source/app.d") )
continue;
- sln.formattedWrite(" \n", (p.path.relativeTo(pack.path) ~ s).toNativeString());
+ generateSourceEntry(p.path ~s, p.path);
}
foreach( s; buildsettings.files )
- sln.formattedWrite(" \n", s);
+ generateSourceEntry(Path(s), p.path);
}