Fix building with path arguments containing spaces.
1 parent 97f929a commit 6bec1e420ecd7ad8c9ac1e6b64b09bbb06608e47
@Sönke Ludwig Sönke Ludwig authored on 23 Jun 2013
Showing 1 changed file
View
4
source/dub/generators/build.d
 
// write response file instead of passing flags directly to the compiler
auto res_file = Path(buildsettings.targetPath) ~ ".dmd-response-file.txt";
cleanup_files ~= res_file;
std.file.write(res_file.toNativeString(), join(buildsettings.dflags, "\n"));
std.file.write(res_file.toNativeString(), join(buildsettings.dflags.map!(s => "\""~s~"\"")(), "\n"));
 
// invoke the compiler
logInfo("Running %s...", settings.compilerBinary);
logDiagnostic("%s %s", settings.compilerBinary, join(buildsettings.dflags, " "));
// write response file instead of passing flags directly to the compiler
auto res_file = Path(buildsettings.targetPath) ~ ".dmd-response-file.txt";
cleanup_files ~= res_file;
cleanup_files ~= tempobj;
std.file.write(res_file.toNativeString(), join(buildsettings.dflags, "\n"));
std.file.write(res_file.toNativeString(), join(buildsettings.dflags.map!(s => "\""~s~"\"")(), "\n"));
 
logInfo("Running %s (compile)...", settings.compilerBinary);
logDiagnostic("%s %s", settings.compilerBinary, join(buildsettings.dflags, " "));
auto result = spawnProcess([settings.compilerBinary, "@"~res_file.toNativeString()]).wait();