From 61cf781a6216c55a60fb73d4fb5fab76b1e7fc34 Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Fri, 26 Dec 2014 21:15:29 -0700 Subject: Encoding: Write Visual Studio solution file with BOM. When configured to use UTF-8 internally, add a UTF-8 BOM to generated .sln files for Visual Studio to correctly handle them. Otherwise, some versions of Visual Studio will read them as ANSI encoded files. --- Source/cmGlobalVisualStudio71Generator.cxx | 5 +++++ Source/cmGlobalVisualStudio7Generator.cxx | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx index a67a649..64f9cee 100644 --- a/Source/cmGlobalVisualStudio71Generator.cxx +++ b/Source/cmGlobalVisualStudio71Generator.cxx @@ -93,6 +93,11 @@ void cmGlobalVisualStudio71Generator cmLocalGenerator* root, std::vector& generators) { +#ifdef CMAKE_ENCODING_UTF8 + // Add UTF-8 BOM for .sln file to indicate encoding + const unsigned char utf8_bom[3] = {0xEF,0xBB,0xBF}; + fout.write(reinterpret_cast(utf8_bom), 3); +#endif // Write out the header for a SLN file this->WriteSLNHeader(fout); diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 401e475..0eb7d2c 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -558,6 +558,11 @@ void cmGlobalVisualStudio7Generator cmLocalGenerator* root, std::vector& generators) { +#ifdef CMAKE_ENCODING_UTF8 + // Add UTF-8 BOM for .sln file to indicate encoding + const unsigned char utf8_bom[3] = {0xEF,0xBB,0xBF}; + fout.write(reinterpret_cast(utf8_bom), 3); +#endif // Write out the header for a SLN file this->WriteSLNHeader(fout); -- cgit v0.12