diff --git a/package.json b/package.json
index 4c612e8..b792a8f 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,16 @@
-{
- "name": "dub",
- "description": "Package manager for D packages",
- "copyright": "Copyright 2012 rejectedsoftware e.K.",
- "version": "0.0.1",
- "authors": [
- "Matthias Dondorff",
- "Sönke Ludwig"
- ],
- "dependencies": {
- "vibe-d": "~master"
- }
+{
+ "name": "dub",
+ "description": "Package manager for D packages",
+ "copyright": "Copyright 2012 rejectedsoftware e.K.",
+ "version": "0.0.1",
+ "authors": [
+ "Matthias Dondorff",
+ "Sönke Ludwig"
+ ],
+ "dependencies": {
+ "vibe-d": "~master"
+ },
+ "versions": [
+ "VibeCustomMain"
+ ]
}
\ No newline at end of file
diff --git a/source/app.d b/source/app.d
index ab63f90..d64ae81 100644
--- a/source/app.d
+++ b/source/app.d
@@ -293,7 +293,7 @@
return -1;
}
dub.loadPackageFromCwd();
- dub.generateProject(ide);
+ dub.generateProject(ide, build_platform);
logDebug("Project files generated.");
break;
}
diff --git a/source/dub/dub.d b/source/dub/dub.d
index e18d329..1083905 100644
--- a/source/dub/dub.d
+++ b/source/dub/dub.d
@@ -163,7 +163,7 @@
/// Generate project files for a specified IDE.
/// Any existing project files will be overridden.
- void generateProject(string ide) {
+ void generateProject(string ide, BuildPlatform build_platform) {
auto generator = createProjectGenerator(ide, m_app, m_packageManager);
if(generator is null ) {
logError("Unsupported IDE, there is no generator available for '"~ide~"'");
@@ -172,7 +172,7 @@
// Q: update before generating?
- generator.generateProject();
+ generator.generateProject(build_platform);
}
/// Creates a zip from the application.
diff --git a/source/dub/generators/generator.d b/source/dub/generators/generator.d
index 430c1c1..5e27fcd 100644
--- a/source/dub/generators/generator.d
+++ b/source/dub/generators/generator.d
@@ -8,6 +8,7 @@
module dub.generators.generator;
import dub.project;
+import dub.package_;
import dub.packagemanager;
import dub.generators.monod;
import dub.generators.visuald;
@@ -17,14 +18,14 @@
/// A project generator generates projects :-/
interface ProjectGenerator
{
- void generateProject();
+ void generateProject(BuildPlatform build_platform);
}
/// Creates a project generator.
ProjectGenerator createProjectGenerator(string projectType, Project app, PackageManager mgr) {
enforce(app !is null, "app==null, Need an application to work on!");
enforce(mgr !is null, "mgr==null, Need a package manager to work on!");
- switch(projectType) {
+ switch(projectType) {
default: return null;
case "MonoD":
logTrace("Generating MonoD generator.");
diff --git a/source/dub/generators/monod.d b/source/dub/generators/monod.d
index 3384a8f..3eada2c 100644
--- a/source/dub/generators/monod.d
+++ b/source/dub/generators/monod.d
@@ -36,7 +36,7 @@
m_pkgMgr = mgr;
}
- void generateProject()
+ 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());
diff --git a/source/dub/generators/visuald.d b/source/dub/generators/visuald.d
index 000c33f..3355c3e 100644
--- a/source/dub/generators/visuald.d
+++ b/source/dub/generators/visuald.d
@@ -38,9 +38,9 @@
m_pkgMgr = mgr;
}
- void generateProject() {
+ void generateProject(BuildPlatform buildPlatform) {
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(), buildPlatform);
generateSolution();
}
@@ -137,11 +137,11 @@
formattedWrite(ret, "\n\t\t%s.%s.%s = %s", to!string(projectUuid), c, s, c);
}
- void generateProjects(const Package main) {
+ void generateProjects(const Package main, BuildPlatform buildPlatform) {
// TODO: cyclic check
- generateProj(main);
+ generateProj(main, buildPlatform);
version(VISUALD_SEPERATE_PROJECT_FILES)
{
@@ -149,12 +149,12 @@
performOnDependencies(main, (const Package dependency) {
if(dependency.name in m_generatedProjects)
return;
- generateProjects(dependency);
+ generateProjects(dependency, buildPlatform);
} );
}
}
- void generateProj(const Package pack) {
+ void generateProj(const Package pack, BuildPlatform buildPlatform) {
int i = 0;
auto ret = appender!(char[])();
@@ -164,8 +164,8 @@
%s", guid(projName));
// Several configurations (debug, release, unittest)
- generateProjectConfiguration(ret, pack, Config.Debug);
- generateProjectConfiguration(ret, pack, Config.Release);
+ generateProjectConfiguration(ret, pack, Config.Debug, buildPlatform);
+ generateProjectConfiguration(ret, pack, Config.Release, buildPlatform);
// generateProjectConfiguration(ret, pack, Config.Unittest);
// Add all files
@@ -237,14 +237,8 @@
sln.flush();
}
- void generateProjectConfiguration(Appender!(char[]) ret, const Package pack, Config type) {
- BuildPlatform platform;
- platform.platform ~= "windows";
- platform.architecture ~= "x86";
- platform.compiler = "dmd";
-
+ void generateProjectConfiguration(Appender!(char[]) ret, const Package pack, Config type, BuildPlatform platform) {
auto settings = m_app.getBuildSettings(platform, m_app.getDefaultConfiguration(platform));
-
string[] getSettings(string setting)(){ return __traits(getMember, settings, setting); }
// Specify build configuration name
@@ -356,8 +350,8 @@
");
- // Add libraries.
- string linkLibs = join(getSettings!"libs"(), " ");
+ // Add libraries, system libs need to be suffixed by ".lib".
+ string linkLibs = join(map!("a~\".lib\"")(getSettings!"libs"()), " ");
string addLinkFiles = join(getSettings!"files"(), " ");
ret.formattedWrite("
%s", linkLibs ~ " " ~ addLinkFiles);