diff --git a/source/dub/generators/monod.d b/source/dub/generators/monod.d
index dbfa02a..1d6590b 100644
--- a/source/dub/generators/monod.d
+++ b/source/dub/generators/monod.d
@@ -41,7 +41,7 @@
void generateProject(BuildPlatform build_platform)
{
logTrace("About to generate projects for %s, with %s direct dependencies.", m_app.mainPackage().name, to!string(m_app.mainPackage().dependencies().length));
- generateProjects(m_app.mainPackage());
+ generateProjects(m_app.mainPackage(), build_platform);
generateSolution();
}
@@ -122,7 +122,7 @@
ret.put("EndProject\n");
}
- private void generateProjects(in Package pack)
+ private void generateProjects(in Package pack, BuildPlatform build_platform)
{
bool[const(Package)] visited;
@@ -130,7 +130,7 @@
if( p in visited ) return;
visited[p] = true;
- generateProject(p);
+ generateProject(p, build_platform);
if( !m_singleProject )
performOnDependencies(p, &generateRec);
@@ -138,7 +138,8 @@
generateRec(pack);
}
- private void generateProject(in Package pack) {
+ private void generateProject(in Package pack, BuildPlatform build_platform)
+ {
logTrace("About to write to '%s.dproj' file", pack.name);
auto sln = openFile(pack.name ~ ".dproj", FileMode.CreateTrunc);
scope(exit) sln.close();
@@ -149,6 +150,8 @@
auto projName = pack.name;
+ auto buildsettings = m_app.getBuildSettings(build_platform, m_app.getDefaultConfiguration(build_platform));
+
sln.put(" \n");
sln.put(" Debug\n");
sln.put(" AnyCPU\n");
@@ -159,6 +162,32 @@
sln.put(" True\n");
sln.put(" True\n");
sln.put(" DMD2\n");
+ if( !buildsettings.versions.empty ){
+ sln.put(" \n");
+ sln.put(" \n");
+ sln.formattedWrite(" %s\n", buildsettings.versions.join(", "));
+ sln.put(" \n");
+ sln.put(" \n");
+ }
+ if( !buildsettings.importPaths.empty ){
+ sln.put(" \n");
+ sln.put(" \n");
+ foreach(dir; buildsettings.importPaths)
+ sln.formattedWrite(" %s\n", dir);
+ sln.put(" \n");
+ sln.put(" \n");
+ }
+ if( !buildsettings.libs.empty ){
+ sln.put(" \n");
+ sln.put(" \n");
+ foreach(dir; buildsettings.libs)
+ sln.formattedWrite(" %s\n", build_platform.platform.canFind("windows") ? dir ~ ".lib" : dir);
+ sln.put(" \n");
+ sln.put(" \n");
+ }
+ buildsettings.dflags ~= buildsettings.stringImportPaths.map!(p => "-J"~p)().array();
+ sln.formattedWrite(" %s\n", buildsettings.dflags.join(" "));
+ sln.formattedWrite(" %s\n", buildsettings.lflags.join(" "));
sln.put(" \n");
void generateProperties(Config config)
@@ -167,15 +196,13 @@
config.configName, config.platformName);
sln.put(" True\n");
- sln.formattedWrite(" bin/%s\n", config.configName);
+ sln.formattedWrite(" bin\\%s\n", config.configName);
sln.put(" True\n");
sln.put(" Executable\n");
sln.formattedWrite(" %s\n", pack.name);
sln.put(" False\n");
- sln.formattedWrite(" obj/%s\n", config.configName);
+ sln.formattedWrite(" obj\\%s\n", config.configName);
sln.put(" 0\n");
- sln.put(" \n");
- sln.put(" \n");
sln.put(" \n");
}
@@ -191,6 +218,8 @@
foreach( s; p.sources )
sln.formattedWrite(" \n", (p.path.relativeTo(pack.path) ~ s).toNativeString());
+ foreach( s; buildsettings.files )
+ sln.formattedWrite(" \n", s);
}