From 44aff73d4a7cb407633ab7afc8a76774d4f69e4f Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 6 Jan 2011 18:29:44 -0500 Subject: [PATCH] ExternalProject: Avoid bleed-through output when logging. Unset VS_UNICODE_OUTPUT when executing a command whose output is being logged to a file. Previously, running Microsoft tools in sub-processes of Visual Studio would send their output to the Visual Studio output pipe named by this environment variable. Unsetting it forces the output back to the normal stdout and stderr channels where cmake can intercept it and direct it to the appropriate log files. --- Modules/ExternalProject.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 997164a8e..9735eb4da 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -711,7 +711,7 @@ endif() set(sep ";") endif() endforeach() - set(code "${code}set(command \"${cmd}\")${code_execute_process}") + set(code "set(ENV{VS_UNICODE_OUTPUT} \"\")\n${code}set(command \"${cmd}\")${code_execute_process}") file(WRITE ${stamp_dir}/${name}-${step}-impl.cmake "${code}") set(command ${CMAKE_COMMAND} "-Dmake=\${make}" "-Dconfig=\${config}" -P ${stamp_dir}/${name}-${step}-impl.cmake) endif() @@ -721,6 +721,7 @@ endif() set(logbase ${stamp_dir}/${name}-${step}) file(WRITE ${script} " ${code_cygpath_make} +set(ENV{VS_UNICODE_OUTPUT} \"\") set(command \"${command}\") execute_process( COMMAND \${command}