From bddd8f0e541cad179c20bccf8c9e016c0d2e534e Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 12 Jul 2023 15:01:38 +0200 Subject: cmWorkerPool: Show process exit code / signal number upon failure Previously if an AUTOGEN process like moc exited with a non-zero exit code, cmWorkerPool would not populate the result's ErrorMessage because it mistakenly thought that if the ExitCode / TermSignal had a non-zero value, the ErrorMessage must have already been set. This was a wrong assumption. Instead, check if ErrorMessage is empty, and if it is, set it to whatever the exit code or term signal number is. --- Source/cmWorkerPool.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmWorkerPool.cxx b/Source/cmWorkerPool.cxx index 1d15c27..27cdbba 100644 --- a/Source/cmWorkerPool.cxx +++ b/Source/cmWorkerPool.cxx @@ -309,7 +309,7 @@ void cmUVReadOnlyProcess::UVExit(uv_process_t* handle, int64_t exitStatus, // Set error message on demand proc.Result()->ExitStatus = exitStatus; proc.Result()->TermSignal = termSignal; - if (!proc.Result()->error()) { + if (proc.Result()->ErrorMessage.empty()) { if (termSignal != 0) { proc.Result()->ErrorMessage = cmStrCat( "Process was terminated by signal ", proc.Result()->TermSignal); -- cgit v0.12