|
|
@@ -206,7 +206,7 @@ static int process( const std::string& srcfilename,
|
|
|
includes.push_back(inc);
|
|
|
} else {
|
|
|
if (!isFirstLine || !startsWith(line, srcfilename)) {
|
|
|
- if (!quiet) {
|
|
|
+ if (!quiet || exit_code != 0) {
|
|
|
fprintf(stdout, "%s\n", line.c_str());
|
|
|
}
|
|
|
} else {
|
|
|
@@ -254,7 +254,10 @@ int main() {
|
|
|
// rc: /fo x.dir\x.rc.res -> cl: /out:x.dir\x.rc.res.dep.obj
|
|
|
clrest = replace(clrest, "/fo", "/out:");
|
|
|
clrest = replace(clrest, objfile, objfile + ".dep.obj ");
|
|
|
+
|
|
|
// rc: src\x\x.rc -> cl: /Tc src\x\x.rc
|
|
|
+ if (srcfile.find(" ") != std::string::npos)
|
|
|
+ srcfile = "\"" + srcfile + "\"";
|
|
|
clrest = replace(clrest, srcfile, "/Tc " + srcfile);
|
|
|
|
|
|
cl = "\"" + cl + "\" /P /DRC_INVOKED ";
|
|
|
@@ -267,8 +270,11 @@ int main() {
|
|
|
}
|
|
|
|
|
|
// extract dependencies with cl.exe
|
|
|
- process(srcfilename, dfile, objfile,
|
|
|
- prefix, cl + nol + show + clrest, objdir, true);
|
|
|
+ int exit_code = process(srcfilename, dfile, objfile,
|
|
|
+ prefix, cl + nol + show + clrest, objdir, true);
|
|
|
+
|
|
|
+ if (exit_code != 0)
|
|
|
+ return exit_code;
|
|
|
|
|
|
// compile rc file with rc.exe
|
|
|
return process(srcfilename, "" , objfile, prefix, binpath + " " + rest);
|