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.
This commit is contained in:
Clinton Stimpson 2014-12-26 21:15:29 -07:00
parent 05105d5c13
commit 61cf781a62
2 changed files with 10 additions and 0 deletions

View File

@ -93,6 +93,11 @@ void cmGlobalVisualStudio71Generator
cmLocalGenerator* root,
std::vector<cmLocalGenerator*>& 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<const char*>(utf8_bom), 3);
#endif
// Write out the header for a SLN file
this->WriteSLNHeader(fout);

View File

@ -558,6 +558,11 @@ void cmGlobalVisualStudio7Generator
cmLocalGenerator* root,
std::vector<cmLocalGenerator*>& 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<const char*>(utf8_bom), 3);
#endif
// Write out the header for a SLN file
this->WriteSLNHeader(fout);