@@ -29,9 +29,15 @@ import std.string;
29
29
30
30
class DubLintGenerator : ProjectGenerator
31
31
{
32
- this (Project project)
32
+ private
33
+ {
34
+ NativePath m_cwd;
35
+ }
36
+
37
+ this (Project project, NativePath cwd)
33
38
{
34
39
super (project);
40
+ m_cwd = cwd;
35
41
}
36
42
37
43
override void generateTargets (GeneratorSettings settings, in TargetInfo[string ] targets)
@@ -48,14 +54,12 @@ class DubLintGenerator : ProjectGenerator
48
54
private void performDirectBuild (GeneratorSettings settings,
49
55
ref BuildSettings buildsettings, in Package pack, string config)
50
56
{
51
- auto cwd = NativePath(getcwd());
52
-
53
57
tracef(" %s %s: building configuration %s" , pack.name, pack.version_, config);
54
58
55
59
// make all target/import paths relative
56
60
string makeRelative (string path)
57
61
{
58
- return shrinkPath (NativePath(path), cwd );
62
+ return shrinkPath (NativePath(path), m_cwd );
59
63
}
60
64
61
65
buildsettings.targetPath = makeRelative(buildsettings.targetPath);
@@ -81,11 +85,13 @@ class DubLintGenerator : ProjectGenerator
81
85
buildsettings.lflags = null ;
82
86
buildsettings.addOptions(BuildOption.syntaxOnly);
83
87
buildsettings.sourceFiles = buildsettings.sourceFiles.filter! (f => ! isLinkerFile(settings.platform, f)).array;
84
- trace(" Build settings: " , buildsettings);
85
88
86
89
settings.compiler.prepareBuildSettings(buildsettings, settings.platform, BuildSetting.commandLine);
87
90
88
- settings.compiler.invoke(buildsettings, settings.platform, settings.compileCallback);
91
+ static if (is (typeof (settings.toolWorkingDirectory)))
92
+ settings.compiler.invoke(buildsettings, settings.platform, settings.compileCallback, settings.toolWorkingDirectory);
93
+ else
94
+ settings.compiler.invoke(buildsettings, settings.platform, settings.compileCallback);
89
95
}
90
96
}
91
97
0 commit comments