diff --git a/source/dub/generators/monod.d b/source/dub/generators/monod.d index 17f9405..8e6e81d 100644 --- a/source/dub/generators/monod.d +++ b/source/dub/generators/monod.d @@ -235,36 +235,38 @@ bool[const(Package)] visited; - void generateSourceEntry(Path path, Path base_path) + void generateSourceEntry(Path path, Path base_path, bool compile = true) { auto rel_path = path.relativeTo(pack.path); rel_path.normalize(); Path pretty_path; - foreach( i; 0 .. rel_path.length ) - if( rel_path[i] != ".." ){ + foreach (i; 0 .. rel_path.length) + if (rel_path[i] != "..") { pretty_path = rel_path[i .. $]; break; } + string kind = compile ? "Compile" : "None"; - if( base_path == pretty_path ){ - sln.formattedWrite(" \n", rel_path.toNativeString()); + if (base_path == pretty_path) { + sln.formattedWrite(" <%s Include=\"%s\" />\n", kind, rel_path.toNativeString()); } else { - sln.formattedWrite(" \n", rel_path.toNativeString()); + sln.formattedWrite(" <%s Include=\"%s\">\n", kind, rel_path.toNativeString()); sln.formattedWrite(" %s\n", pretty_path.toNativeString()); - sln.formattedWrite(" \n"); + sln.formattedWrite(" \n", kind); } } - foreach( p; m_app.getTopologicalPackageList() ) - buildsettings.sourceFiles ~= p.packageInfoFile.toNativeString(); - sln.put(" \n"); - foreach( s; buildsettings.sourceFiles ){ + // add source files + foreach (s; buildsettings.sourceFiles) { auto sp = Path(s); - if( !sp.absolute ) sp = pack.path ~ sp; + if (!sp.absolute) sp = pack.path ~ sp; generateSourceEntry(sp, pack.path); } + // add package.json files + foreach (p; m_app.getTopologicalPackageList()) + generateSourceEntry(p.packageInfoFile, pack.path, false); sln.put(" \n"); sln.put(""); }