diff options
author | Dāvis Mosāns <davispuh@gmail.com> | 2016-10-01 00:11:35 (GMT) |
---|---|---|
committer | Dāvis Mosāns <davispuh@gmail.com> | 2016-10-26 14:02:37 (GMT) |
commit | 335a29cb07a8d014a9ed4d4dbf25e49da3a78b33 (patch) | |
tree | a49c2857563391c6bd9f1ddd4624f3c3fa85a7df /Source/CPack/cpack.cxx | |
parent | fdd0ce915c0ab7e5a9f3b95612b35d845a7a5213 (diff) | |
download | CMake-335a29cb07a8d014a9ed4d4dbf25e49da3a78b33.zip CMake-335a29cb07a8d014a9ed4d4dbf25e49da3a78b33.tar.gz CMake-335a29cb07a8d014a9ed4d4dbf25e49da3a78b33.tar.bz2 |
Enable Unicode output to Windows consoles
Use KWSys ConsoleBuf to replace the `streambuf` on `std::cout` and
`std::cerr` so that process output can be encoded correctly for display
in a Windows console.
Diffstat (limited to 'Source/CPack/cpack.cxx')
-rw-r--r-- | Source/CPack/cpack.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index b06bd38..06472c6 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -17,6 +17,9 @@ #include <cmsys/CommandLineArguments.hxx> #include <cmsys/Encoding.hxx> +#if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) +#include <cmsys/ConsoleBuf.hxx> +#endif #include <iostream> #include <map> #include <sstream> @@ -84,6 +87,11 @@ int cpackDefinitionArgument(const char* argument, const char* cValue, // this is CPack. int main(int argc, char const* const* argv) { +#if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) + // Replace streambuf so we can output Unicode to console + cmsys::ConsoleBuf::Manager consoleOut(std::cout); + cmsys::ConsoleBuf::Manager consoleErr(std::cerr, true); +#endif cmsys::Encoding::CommandLineArguments args = cmsys::Encoding::CommandLineArguments::Main(argc, argv); argc = args.argc(); |