summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-07-10 15:50:49 (GMT)
committerBrad King <brad.king@kitware.com>2013-07-16 17:48:10 (GMT)
commit45d2966dcc0ebc08a925d6ac2ba1831549faa345 (patch)
treeb51901fe567e10e511a6b0b3cfc7b951821a5d50 /Modules
parenta18e9586dbd7172911fde22b6b6331676b817e4d (diff)
downloadCMake-45d2966dcc0ebc08a925d6ac2ba1831549faa345.zip
CMake-45d2966dcc0ebc08a925d6ac2ba1831549faa345.tar.gz
CMake-45d2966dcc0ebc08a925d6ac2ba1831549faa345.tar.bz2
VS: Avoid leaking child process output back to IDE (#14266)
The VS IDE sets the environment variable VS_UNICODE_OUTPUT when executing build rules in order to tell MS tools to report output through a back door instead of through stdout/stderr. Unset this variable so that CMake can capture or properly redirect all output from processes it runs even when running inside a VS IDE build environment. This generalizes the special cases fixed by commit 80d045b0 (When GetPrerequisites.cmake runs dumpbin while running inside the VS IDE..., 2008-05-01) and commit 44aff73d (ExternalProject: Avoid bleed-through output when logging, 2011-01-06), so drop special handling of VS_UNICODE_OUTPUT in those instances.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/ExternalProject.cmake3
-rw-r--r--Modules/GetPrerequisites.cmake1
2 files changed, 1 insertions, 3 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 6afdb97..f7e6253 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -961,7 +961,7 @@ endif()
set(sep ";")
endif()
endforeach()
- set(code "set(ENV{VS_UNICODE_OUTPUT} \"\")\n${code}set(command \"${cmd}\")${code_execute_process}")
+ set(code "${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()
@@ -971,7 +971,6 @@ 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}
diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake
index 18f449d..9e89788 100644
--- a/Modules/GetPrerequisites.cmake
+++ b/Modules/GetPrerequisites.cmake
@@ -635,7 +635,6 @@ function(get_prerequisites target prerequisites_var exclude_system recurse exepa
set(gp_regex_fallback "")
set(gp_regex_cmp_count 1)
set(gp_tool_known 1)
- set(ENV{VS_UNICODE_OUTPUT} "") # Block extra output from inside VS IDE.
endif()
if("${gp_tool}" STREQUAL "objdump")