aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2016-11-28 18:33:27 +0200
committerOrgad Shaneh <orgads@gmail.com>2016-12-19 08:09:46 +0000
commit6d33f9d72a326deea9ec00c1f6a4d16967555ab4 (patch)
tree41c898b06722e4d0a021d7be94dfe435fc994dc7 /scripts
parentf7712a9c61a3b987a9febdcc2cbbc4e215e24f87 (diff)
Support Python3 in deploy scripts
Change-Id: I3a25306ed6babdbae09dcb0f8bc2c5c337d36415 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/common.py9
-rwxr-xr-xscripts/deployqt.py42
2 files changed, 28 insertions, 23 deletions
diff --git a/scripts/common.py b/scripts/common.py
index 22fcca9872..388ce487fd 100644
--- a/scripts/common.py
+++ b/scripts/common.py
@@ -24,10 +24,13 @@
############################################################################
import os
+import locale
import shutil
import subprocess
import sys
+encoding = locale.getdefaultlocale()[1]
+
def is_windows_platform():
return sys.platform.startswith('win')
@@ -88,7 +91,7 @@ def copytree(src, dst, symlinks=False, ignore=None):
def get_qt_install_info(qmake_bin):
output = subprocess.check_output([qmake_bin, '-query'])
- lines = output.strip().split('\n')
+ lines = output.decode(encoding).strip().split('\n')
info = {}
for line in lines:
(var, sep, value) = line.partition(':')
@@ -103,7 +106,7 @@ def get_rpath(libfilepath, chrpath=None):
except subprocess.CalledProcessError: # no RPATH or RUNPATH
return []
marker = 'RPATH='
- index = output.find(marker)
+ index = output.decode(encoding).find(marker)
if index < 0:
marker = 'RUNPATH='
index = output.find(marker)
@@ -127,7 +130,7 @@ def fix_rpaths(path, qt_deploy_path, qt_install_info, chrpath=None):
# check for Qt linking
lddOutput = subprocess.check_output(['ldd', filepath])
- if lddOutput.find('libQt5') >= 0 or lddOutput.find('libicu') >= 0:
+ if lddOutput.decode(encoding).find('libQt5') >= 0 or lddOutput.find('libicu') >= 0:
# add Qt RPATH if necessary
relative_path = os.path.relpath(qt_deploy_path, os.path.dirname(filepath))
if relative_path == '.':
diff --git a/scripts/deployqt.py b/scripts/deployqt.py
index d2c2e7abac..8e7fa8ba47 100755
--- a/scripts/deployqt.py
+++ b/scripts/deployqt.py
@@ -28,6 +28,7 @@
################################################################################
import os
+import locale
import sys
import getopt
import subprocess
@@ -39,9 +40,10 @@ import common
ignoreErrors = False
debug_build = False
+encoding = locale.getdefaultlocale()[1]
def usage():
- print "Usage: %s <creator_install_dir> [qmake_path]" % os.path.basename(sys.argv[0])
+ print("Usage: %s <creator_install_dir> [qmake_path]" % os.path.basename(sys.argv[0]))
def which(program):
def is_exe(fpath):
@@ -73,14 +75,14 @@ def is_debug(fpath):
if coredebug.search(fpath):
return True
output = subprocess.check_output(['dumpbin', '/imports', fpath])
- return coredebug.search(output) != None
+ return coredebug.search(output.decode(encoding)) != None
def is_debug_build(install_dir):
return is_debug(os.path.join(install_dir, 'bin', 'qtcreator.exe'))
def op_failed(details = None):
if details != None:
- print details
+ print(details)
if ignoreErrors == False:
print("Error: operation failed!")
sys.exit(2)
@@ -108,7 +110,7 @@ def ignored_qt_lib_files(path, filenames):
return [fn for fn in filenames if is_ignored_windows_file(debug_build, path, fn)]
def copy_qt_libs(target_qt_prefix_path, qt_bin_dir, qt_libs_dir, qt_plugin_dir, qt_import_dir, qt_qml_dir, plugins, imports):
- print "copying Qt libraries..."
+ print("copying Qt libraries...")
if common.is_windows_platform():
libraries = glob(os.path.join(qt_libs_dir, '*.dll'))
@@ -127,7 +129,7 @@ def copy_qt_libs(target_qt_prefix_path, qt_bin_dir, qt_libs_dir, qt_plugin_dir,
libraries = [lib for lib in libraries if not is_ignored_windows_file(debug_build, '', lib)]
for library in libraries:
- print library, '->', lib_dest
+ print(library, '->', lib_dest)
if os.path.islink(library):
linkto = os.readlink(library)
try:
@@ -137,7 +139,7 @@ def copy_qt_libs(target_qt_prefix_path, qt_bin_dir, qt_libs_dir, qt_plugin_dir,
else:
shutil.copy(library, lib_dest)
- print "Copying plugins:", plugins
+ print("Copying plugins:", plugins)
for plugin in plugins:
target = os.path.join(target_qt_prefix_path, 'plugins', plugin)
if (os.path.exists(target)):
@@ -147,7 +149,7 @@ def copy_qt_libs(target_qt_prefix_path, qt_bin_dir, qt_libs_dir, qt_plugin_dir,
print('{0} -> {1}'.format(pluginPath, target))
common.copytree(pluginPath, target, ignore=ignored_qt_lib_files, symlinks=True)
- print "Copying imports:", imports
+ print("Copying imports:", imports)
for qtimport in imports:
target = os.path.join(target_qt_prefix_path, 'imports', qtimport)
if (os.path.exists(target)):
@@ -158,14 +160,14 @@ def copy_qt_libs(target_qt_prefix_path, qt_bin_dir, qt_libs_dir, qt_plugin_dir,
common.copytree(import_path, target, ignore=ignored_qt_lib_files, symlinks=True)
if (os.path.exists(qt_qml_dir)):
- print "Copying qt quick 2 imports"
+ print("Copying qt quick 2 imports")
target = os.path.join(target_qt_prefix_path, 'qml')
if (os.path.exists(target)):
shutil.rmtree(target)
print('{0} -> {1}'.format(qt_qml_dir, target))
common.copytree(qt_qml_dir, target, ignore=ignored_qt_lib_files, symlinks=True)
- print "Copying qtdiag"
+ print("Copying qtdiag")
bin_dest = target_qt_prefix_path if common.is_windows_platform() else os.path.join(target_qt_prefix_path, 'bin')
qtdiag_src = os.path.join(qt_bin_dir, 'qtdiag.exe' if common.is_windows_platform() else 'qtdiag')
if not os.path.exists(bin_dest):
@@ -191,9 +193,9 @@ def copy_translations(install_dir, qt_tr_dir):
translations = glob(os.path.join(qt_tr_dir, '*.qm'))
tr_dir = os.path.join(install_dir, 'share', 'qtcreator', 'translations')
- print "copying translations..."
+ print("copying translations...")
for translation in translations:
- print translation, '->', tr_dir
+ print(translation, '->', tr_dir)
shutil.copy(translation, tr_dir)
def copyPreservingLinks(source, destination):
@@ -240,21 +242,21 @@ def deploy_libclang(install_dir, llvm_install_dir, chrpath_bin):
os.path.join(clangbinary_targetdir, linktarget)))
resourcetarget = os.path.join(install_dir, 'libexec', 'qtcreator', 'clang', 'lib', 'clang')
- print "copying libclang..."
+ print("copying libclang...")
for source, target in deployinfo:
- print source, '->', target
+ print(source, '->', target)
copyPreservingLinks(source, target)
if common.is_linux_platform():
# libclang was statically compiled, so there is no need for the RPATHs
# and they are confusing when fixing RPATHs later in the process
- print "removing libclang RPATHs..."
+ print("removing libclang RPATHs...")
for source, target in deployinfo:
if not os.path.islink(target):
targetfilepath = target if not os.path.isdir(target) else os.path.join(target, os.path.basename(source))
subprocess.check_call([chrpath_bin, '-d', targetfilepath])
- print resourcesource, '->', resourcetarget
+ print(resourcesource, '->', resourcetarget)
if (os.path.exists(resourcetarget)):
shutil.rmtree(resourcetarget)
common.copytree(resourcesource, resourcetarget, symlinks=True)
@@ -272,7 +274,7 @@ def main():
if o in ('-i', '--ignore-errors'):
global ignoreErrors
ignoreErrors = True
- print "Note: Ignoring all errors"
+ print("Note: Ignoring all errors")
if len(args) < 1:
usage()
@@ -289,14 +291,14 @@ def main():
qmake_bin = which(qmake_bin)
if qmake_bin == None:
- print "Cannot find required binary 'qmake'."
+ print("Cannot find required binary 'qmake'.")
sys.exit(2)
chrpath_bin = None
if common.is_linux_platform():
chrpath_bin = which('chrpath')
if chrpath_bin == None:
- print "Cannot find required binary 'chrpath'."
+ print("Cannot find required binary 'chrpath'.")
sys.exit(2)
qt_install_info = common.get_qt_install_info(qmake_bin)
@@ -323,7 +325,7 @@ def main():
deploy_libclang(install_dir, os.environ["LLVM_INSTALL_DIR"], chrpath_bin)
if not common.is_windows_platform():
- print "fixing rpaths..."
+ print("fixing rpaths...")
common.fix_rpaths(install_dir, os.path.join(qt_deploy_prefix, 'lib'), qt_install_info, chrpath_bin)
add_qt_conf(os.path.join(install_dir, 'libexec', 'qtcreator'), qt_deploy_prefix) # e.g. for qml2puppet
add_qt_conf(os.path.join(qt_deploy_prefix, 'bin'), qt_deploy_prefix) # e.g. qtdiag
@@ -331,7 +333,7 @@ def main():
if __name__ == "__main__":
if common.is_mac_platform():
- print "Mac OS is not supported by this script, please use macqtdeploy!"
+ print("macOS is not supported by this script, please use macqtdeploy!")
sys.exit(2)
else:
main()