cmGeneratedFileStream: Add optional encoding support

This allows to save file stream in different encoding than internal
encoding.
This commit is contained in:
Dāvis Mosāns
2016-10-05 16:43:21 +03:00
committed by Brad King
parent bb1d3370ce
commit f00214aa4f
2 changed files with 22 additions and 4 deletions

View File

@@ -10,13 +10,21 @@
#include <cm_zlib.h>
#endif
cmGeneratedFileStream::cmGeneratedFileStream()
cmGeneratedFileStream::cmGeneratedFileStream(Encoding encoding)
: cmGeneratedFileStreamBase()
, Stream()
{
#ifdef CMAKE_BUILD_WITH_CMAKE
if (encoding != codecvt::None) {
imbue(std::locale(getloc(), new codecvt(encoding)));
}
#else
static_cast<void>(encoding);
#endif
}
cmGeneratedFileStream::cmGeneratedFileStream(const char* name, bool quiet)
cmGeneratedFileStream::cmGeneratedFileStream(const char* name, bool quiet,
Encoding encoding)
: cmGeneratedFileStreamBase(name)
, Stream(TempName.c_str())
{
@@ -26,6 +34,13 @@ cmGeneratedFileStream::cmGeneratedFileStream(const char* name, bool quiet)
this->TempName.c_str());
cmSystemTools::ReportLastSystemError("");
}
#ifdef CMAKE_BUILD_WITH_CMAKE
if (encoding != codecvt::None) {
imbue(std::locale(getloc(), new codecvt(encoding)));
}
#else
static_cast<void>(encoding);
#endif
}
cmGeneratedFileStream::~cmGeneratedFileStream()