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); }