diff options
author | Justin Goshi <jgoshi@microsoft.com> | 2020-06-02 19:46:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-06-03 13:00:41 (GMT) |
commit | e219527a72e0f52308805b4c16f8f51d7678cca7 (patch) | |
tree | ab5b800cd6d5ebffa22d00418ed98641d40984d9 /Source/cmVisualStudio10TargetGenerator.cxx | |
parent | 8a7ad923a89030e63e60fb333169abd258732615 (diff) | |
download | CMake-e219527a72e0f52308805b4c16f8f51d7678cca7.zip CMake-e219527a72e0f52308805b4c16f8f51d7678cca7.tar.gz CMake-e219527a72e0f52308805b4c16f8f51d7678cca7.tar.bz2 |
VS: Use StdOutEncoding for VS 16.7 Preview 3 and above
VS 16.6 added a `StdOutEncoding` setting for custom commands to tell
MSBuild that the output is encoded as UTF-8. In commit bc877a7e94 (Add
support to indicate UTF-8 custom command pipe output encoding,
2020-04-08) CMake learned to add the setting in anticipation of the VS
16.6 release. However, when 16.6 was released it had a bug in the
implementation of custom tasks with StdOutEncoding enabled that was
exposed by our test suite. In commit 5058fb5401 (VS: Drop
StdOutEncoding with VS 16.6 pending investigation, 2020-05-29) we
disabled the setting pending investigation.
The problem is fixed in VS 16.7 Preview 3, so restore use of the
setting when a VS instance of at least that version is detected.
Fixes: #20769
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.cxx')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 8cb933b..97c4c85 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -19,6 +19,7 @@ #include "cmGeneratorExpression.h" #include "cmGeneratorTarget.h" #include "cmGlobalVisualStudio10Generator.h" +#include "cmGlobalVisualStudioVersionedGenerator.h" #include "cmLinkLineDeviceComputer.h" #include "cmLocalVisualStudio10Generator.h" #include "cmMakefile.h" @@ -4951,10 +4952,9 @@ std::string cmVisualStudio10TargetGenerator::GetCMakeFilePath( return path; } -void cmVisualStudio10TargetGenerator::WriteStdOutEncodingUtf8(Elem& /* e1 */) +void cmVisualStudio10TargetGenerator::WriteStdOutEncodingUtf8(Elem& e1) { - // FIXME: As of VS 16.6.0, this breaks custom commands with symbolic outputs. - // See https://gitlab.kitware.com/cmake/cmake/-/issues/20769 for details. - // Disable it for now. - // e1.Element("StdOutEncoding", "UTF-8"); + if (this->GlobalGenerator->IsStdOutEncodingSupported()) { + e1.Element("StdOutEncoding", "UTF-8"); + } } |