diff options
author | Tobias Markmann <tm@ayena.de> | 2019-02-19 15:34:59 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2019-02-20 07:40:35 (GMT) |
commit | 7062839cd21ba32a73ce01c920294d0f7575780b (patch) | |
tree | d44770d343476f55d258f25bf13919c79a5a105c | |
parent | fafcdd573702e188873c608153900e764672648d (diff) | |
download | swift-7062839cd21ba32a73ce01c920294d0f7575780b.zip swift-7062839cd21ba32a73ce01c920294d0f7575780b.tar.bz2 |
Fix Python 3 Unicode issues related to Windows packaging
Test-Information:
Without these fixes, the build of a Windows MSI package
is not possible on Windows Server 2012. This is due to
the fact that on Windows you must force UTF8 coding
on file open as it defaults to Windows specific codec
for everything.
Tested by building a Windows MSI package on Windows
Server 2012.
Change-Id: I32664824188775f5ba27d9644fbbf33bf7094dfa
-rw-r--r-- | BuildTools/SCons/Tools/WindowsBundle.py | 8 | ||||
-rw-r--r-- | BuildTools/SCons/Tools/wix.py | 5 | ||||
-rw-r--r-- | Swift/QtUI/SConscript | 12 |
3 files changed, 19 insertions, 6 deletions
diff --git a/BuildTools/SCons/Tools/WindowsBundle.py b/BuildTools/SCons/Tools/WindowsBundle.py index 4d73fa3..9781deb 100644 --- a/BuildTools/SCons/Tools/WindowsBundle.py +++ b/BuildTools/SCons/Tools/WindowsBundle.py @@ -35,5 +35,9 @@ def generate(env) : - p = re.compile(r'"([^\"]*)" "([^\"]*)"') + regex = re.compile(r'"([^\"]*)" "([^\"]*)"') + + if SCons.Util.PY3: + matches = re.findall(regex, stdout.decode('utf8')) + else: + matches = re.findall(regex, stdout) - matches = re.findall(p, stdout) for match in matches: diff --git a/BuildTools/SCons/Tools/wix.py b/BuildTools/SCons/Tools/wix.py index 889afe4..986ea23 100644 --- a/BuildTools/SCons/Tools/wix.py +++ b/BuildTools/SCons/Tools/wix.py @@ -17,3 +17,6 @@ def generate(env) : wixIncludeRegexp = re.compile(r'^\s*\<\?include (\S+.wxs)\s*\?\>\S*', re.M) - contents = source.get_contents() + if SCons.Util.PY3: + contents = source.get_contents().decode("utf8") + else: + contents = source.get_contents() includes = wixIncludeRegexp.findall(contents) diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript index 584cfea..96979c0 100644 --- a/Swift/QtUI/SConscript +++ b/Swift/QtUI/SConscript @@ -2,2 +2,3 @@ import os, datetime, re, time import Version +import SCons.Util @@ -477,7 +478,12 @@ if env["PLATFORM"] == "win32" : def convertToRTF(env, target, source) : - infile = open(source[0].abspath, 'r') - outfile = open(target[0].abspath, 'w') + if SCons.Util.PY3: + infile = open(source[0].abspath, 'r', encoding="utf8") + outfile = open(target[0].abspath, 'w', encoding="utf8") + else: + infile = open(source[0].abspath, 'r') + outfile = open(target[0].abspath, 'w') outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n') for line in infile: - for char in line.decode("utf-8") : + line = line if SCons.Util.PY3 else line.decode("utf-8") + for char in line : if ord(char) > 127 : |