summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2015-03-27 11:22:15 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2015-03-27 11:22:15 (GMT)
commit98a3b2e29ece5195e7948681a410bc5fae880a23 (patch)
tree571243d44b4bdfbb660e6fad7e1abc6b03e66ccb
parent685d179b8b8e0f0b98dbfd227f6ccd88b17749b0 (diff)
downloadCMake-98a3b2e29ece5195e7948681a410bc5fae880a23.zip
CMake-98a3b2e29ece5195e7948681a410bc5fae880a23.tar.gz
CMake-98a3b2e29ece5195e7948681a410bc5fae880a23.tar.bz2
CPackWIX: Omit codepage conversion when internal encoding is already UTF-8.
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx2
-rw-r--r--Source/CPack/WiX/cmWIXSourceWriter.cxx10
-rw-r--r--Source/CPack/WiX/cmWIXSourceWriter.h2
3 files changed, 10 insertions, 4 deletions
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 257ce7a..99eabf2 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -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()
diff --git a/Source/CPack/WiX/cmWIXSourceWriter.cxx b/Source/CPack/WiX/cmWIXSourceWriter.cxx
index aad19da..219fca8 100644
--- a/Source/CPack/WiX/cmWIXSourceWriter.cxx
+++ b/Source/CPack/WiX/cmWIXSourceWriter.cxx
@@ -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
}
diff --git a/Source/CPack/WiX/cmWIXSourceWriter.h b/Source/CPack/WiX/cmWIXSourceWriter.h
index 3957d96..3b9999c 100644
--- a/Source/CPack/WiX/cmWIXSourceWriter.h
+++ b/Source/CPack/WiX/cmWIXSourceWriter.h
@@ -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;