diff --git a/source/dub/generators/visuald.d b/source/dub/generators/visuald.d index 5a6a216..981f29c 100644 --- a/source/dub/generators/visuald.d +++ b/source/dub/generators/visuald.d @@ -30,6 +30,15 @@ // TODO: handle pre/post build commands +string vsCpuArchitecture(string architecture) +{ + switch(architecture) { + default: logWarn("Unsupported platform('%s'), defaulting to x86", architecture); goto case; + case "x86": return "Win32"; + case "x86_64": return "x64"; + } +} + class VisualDGenerator : ProjectGenerator { private { @@ -96,12 +105,12 @@ // Global section contains configurations ret.put("Global\n"); ret.put("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n"); - ret.formattedWrite("\t\t%s|Win32 = %s|Win32\n", settings.buildType, settings.buildType); + ret.formattedWrite("\t\t%s|%s = %s|%s\n", settings.buildType, settings.platform.architecture[0].vsCpuArchitecture, settings.buildType, settings.platform.architecture[0].vsCpuArchitecture); ret.put("\tEndGlobalSection\n"); ret.put("\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n"); const string[] sub = ["ActiveCfg", "Build.0"]; - const string[] conf = [settings.buildType~"|Win32"]; + const string[] conf = [settings.buildType~"|"~settings.platform.architecture[0].vsCpuArchitecture]; auto projectUuid = guid(mainpack); foreach (t; targets.byKey) foreach (c; conf) @@ -250,12 +259,7 @@ } foreach(architecture; settings.platform.architecture) { - string arch; - switch(architecture) { - default: logWarn("Unsupported platform('%s'), defaulting to x86", architecture); goto case; - case "x86": arch = "Win32"; break; - case "x86_64": arch = "x64"; break; - } + auto arch = architecture.vsCpuArchitecture; ret.formattedWrite(" \n", to!string(type), arch); // FIXME: handle compiler options in an abstract way instead of searching for DMD specific flags