Merge topic 'wix-fix-utf8'

98a3b2e2 CPackWIX: Omit codepage conversion when internal encoding is already UTF-8.
This commit is contained in:
Brad King 2015-03-30 09:27:45 -04:00 committed by CMake Topic Stage
commit 136a534f72
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;