CPackWIX: Omit codepage conversion when internal encoding is already UTF-8.

This commit is contained in:
Nils Gladitz 2015-03-27 12:22:15 +01:00
parent 685d179b8b
commit 98a3b2e29e
3 changed files with 10 additions and 4 deletions

View File

@ -430,7 +430,7 @@ void cmCPackWIXGenerator::AddDefinition(cmWIXSourceWriter& source,
tmp << name << "=\"" << value << '"';
source.AddProcessingInstruction("define",
cmWIXSourceWriter::WindowsCodepageToUtf8(tmp.str()));
cmWIXSourceWriter::CMakeEncodingToUtf8(tmp.str()));
}
bool cmCPackWIXGenerator::CreateWiXSourceFiles()

View File

@ -10,6 +10,8 @@
See the License for more information.
============================================================================*/
#include "cmStandardIncludes.h"
#include "cmWIXSourceWriter.h"
#include <CPack/cmCPackGenerator.h>
@ -118,7 +120,7 @@ void cmWIXSourceWriter::AddProcessingInstruction(
void cmWIXSourceWriter::AddAttribute(
std::string const& key, std::string const& value)
{
std::string utf8 = WindowsCodepageToUtf8(value);
std::string utf8 = CMakeEncodingToUtf8(value);
File << " " << key << "=\"" << EscapeAttributeValue(utf8) << '"';
}
@ -132,8 +134,11 @@ void cmWIXSourceWriter::AddAttributeUnlessEmpty(
}
}
std::string cmWIXSourceWriter::WindowsCodepageToUtf8(std::string const& value)
std::string cmWIXSourceWriter::CMakeEncodingToUtf8(std::string const& value)
{
#ifdef CMAKE_ENCODING_UTF8
return value;
#else
if(value.empty())
{
return std::string();
@ -167,6 +172,7 @@ std::string cmWIXSourceWriter::WindowsCodepageToUtf8(std::string const& value)
&utf8[0], static_cast<int>(utf8.size()), 0, 0);
return std::string(&utf8[0], utf8.size());
#endif
}

View File

@ -43,7 +43,7 @@ public:
void AddAttributeUnlessEmpty(
std::string const& key, std::string const& value);
static std::string WindowsCodepageToUtf8(std::string const& value);
static std::string CMakeEncodingToUtf8(std::string const& value);
protected:
cmCPackLog* Logger;