diff options
author | Brad King <brad.king@kitware.com> | 2018-12-10 13:24:56 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2018-12-10 13:25:03 (GMT) |
commit | 2e2455cbd3ff429181d147374bbc3810acb98a97 (patch) | |
tree | 5aa8a484a54a4868979748d7d87387f9e1894876 | |
parent | d3983f7fc62eb35d08ab69ecdddff47953d86dab (diff) | |
parent | cfd808ff19bbd407dc230458e8a9369412244487 (diff) | |
download | CMake-2e2455cbd3ff429181d147374bbc3810acb98a97.zip CMake-2e2455cbd3ff429181d147374bbc3810acb98a97.tar.gz CMake-2e2455cbd3ff429181d147374bbc3810acb98a97.tar.bz2 |
Merge topic 'ninja-win-long-commands'
cfd808ff19 cmLocalNinjaGenerator: Prevent echoing of lines in ninja generated batch files
2c3f2dfa5a cmLocalNinjaGenerator: Report line of failure in ninja generated batch file
2295040e85 cmLocalNinjaGenerator: Propagate failures from batch file back to ninja
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2701
-rw-r--r-- | Source/cmLocalNinjaGenerator.cxx | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index 8a07516..a8647b1 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -318,7 +318,10 @@ std::string cmLocalNinjaGenerator::WriteCommandScript( cmsys::ofstream script(scriptPath.c_str()); -#ifndef _WIN32 +#ifdef _WIN32 + script << "@echo off\n"; + int line = 1; +#else script << "set -e\n\n"; #endif @@ -329,12 +332,22 @@ std::string cmLocalNinjaGenerator::WriteCommandScript( // for the raw shell script. cmSystemTools::ReplaceString(cmd, "$$", "$"); #ifdef _WIN32 - script << cmd << " || exit /b" << '\n'; + script << cmd << " || (set FAIL_LINE=" << ++line << "& goto :ABORT)" + << '\n'; #else script << cmd << '\n'; #endif } +#ifdef _WIN32 + script << "goto :EOF\n\n" + ":ABORT\n" + "set ERROR_CODE=%ERRORLEVEL%\n" + "echo Batch file failed at line %FAIL_LINE% " + "with errorcode %ERRORLEVEL%\n" + "exit /b %ERROR_CODE%"; +#endif + return scriptPath; } |