llvm-rc: Print stderr output when calling tools through cmake_llvm_rc

The stored error pipe is output if the program fails.

Fixes: #20494
This commit is contained in:
Thomas Bernard 2020-03-25 23:34:34 +01:00 committed by Brad King
parent e3185e3d1b
commit dc93cbb0d8
4 changed files with 13 additions and 3 deletions

View File

@ -1697,6 +1697,11 @@ int cmcmd::RunPreprocessor(const std::vector<std::string>& command,
} }
auto status = process.GetStatus(); auto status = process.GetStatus();
if (!status[0] || status[0]->ExitStatus != 0) { if (!status[0] || status[0]->ExitStatus != 0) {
auto errorStream = process.ErrorStream();
if (errorStream) {
std::cerr << errorStream->rdbuf();
}
return 1; return 1;
} }
@ -1765,6 +1770,10 @@ int cmcmd::RunLLVMRC(std::vector<std::string> const& args)
} }
auto status = process.GetStatus(); auto status = process.GetStatus();
if (!status[0] || status[0]->ExitStatus != 0) { if (!status[0] || status[0]->ExitStatus != 0) {
auto errorStream = process.ErrorStream();
if (errorStream) {
std::cerr << errorStream->rdbuf();
}
return 1; return 1;
} }

View File

@ -673,12 +673,11 @@ function(run_llvm_rc)
set(RunCMake_TEST_NO_CLEAN 1) set(RunCMake_TEST_NO_CLEAN 1)
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
run_cmake_command(llvm_rc_no_args ${CMAKE_COMMAND} -E cmake_llvm_rc) run_cmake_command(llvm_rc_no_args ${CMAKE_COMMAND} -E cmake_llvm_rc)
run_cmake_command(llvm_rc_no_-- ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -E echo "This is a test") run_cmake_command(llvm_rc_no_-- ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -E echo "This is a test")
run_cmake_command(llvm_rc_empty_preprocessor ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp -- ${CMAKE_COMMAND} -E echo "This is a test") run_cmake_command(llvm_rc_empty_preprocessor ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp -- ${CMAKE_COMMAND} -E echo "This is a test")
run_cmake_command(llvm_rc_failing_first_command ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -E false -- ${CMAKE_COMMAND} -E echo "This is a test") run_cmake_command(llvm_rc_failing_first_command ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -P FailedProgram.cmake -- ${CMAKE_COMMAND} -E echo "This is a test")
run_cmake_command(llvm_rc_failing_second_command ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -E echo "This is a test" -- ${CMAKE_COMMAND} -E false ) run_cmake_command(llvm_rc_failing_second_command ${CMAKE_COMMAND} -E cmake_llvm_rc test.tmp ${CMAKE_COMMAND} -E echo "This is a test" -- ${CMAKE_COMMAND} -P FailedProgram.cmake )
if(EXISTS ${RunCMake_TEST_BINARY_DIR}/test.tmp) if(EXISTS ${RunCMake_TEST_BINARY_DIR}/test.tmp)
message(SEND_ERROR "${test} - FAILED:\n" message(SEND_ERROR "${test} - FAILED:\n"
"test.tmp was not deleted") "test.tmp was not deleted")

View File

@ -0,0 +1 @@
CMake Error

View File

@ -0,0 +1 @@
CMake Error