Merge topic 'wix-fix-utf8'
98a3b2e2
CPackWIX: Omit codepage conversion when internal encoding is already UTF-8.
This commit is contained in:
commit
136a534f72
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue