diff options
author | Roman Lacko <backup.rlacko@gmail.com> | 2014-04-21 22:56:37 +0200 |
---|---|---|
committer | Roman Lacko <backup.rlacko@gmail.com> | 2014-04-21 22:56:37 +0200 |
commit | aaa87609878674d068b801de7f1c896b377d515d (patch) | |
tree | 30aa5cc1af8e6237ad1e5e94732d594d7d01c218 | |
parent | 4ba5d5fbcc62d8a5eb4b80d995a3bfb3be094d1f (diff) |
Re-generate examples Qt resource files for Python 3 compatibility when preparing binary packages
-rw-r--r-- | setup.py | 15 | ||||
-rw-r--r-- | utils.py | 20 |
2 files changed, 35 insertions, 0 deletions
@@ -95,6 +95,7 @@ from utils import has_option from utils import option_value from utils import update_env_path from utils import init_msvc_env +from utils import regenerate_qt_resources # Declare options OPTION_DEBUG = has_option("debug") @@ -724,6 +725,13 @@ class pyside_build(_build): "{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, vars=vars) + # Re-generate examples Qt resource files for Python 3 compatibility + if sys.version_info[0] == 3: + examples_path = "{dist_dir}/PySide/examples".format(**vars) + pyside_rcc_path = "{install_dir}/bin/pyside-rcc".format(**vars) + pyside_rcc_options = '-py3' + regenerate_qt_resources(examples_path, pyside_rcc_path, + pyside_rcc_options) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': @@ -833,6 +841,13 @@ class pyside_build(_build): "{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, vars=vars) + # Re-generate examples Qt resource files for Python 3 compatibility + if sys.version_info[0] == 3: + examples_path = "{dist_dir}/PySide/examples".format(**vars) + pyside_rcc_path = "{install_dir}/bin/pyside-rcc".format(**vars) + pyside_rcc_options = '-py3' + regenerate_qt_resources(examples_path, pyside_rcc_path, + pyside_rcc_options) # <ssl_libs>/* -> <setup>/PySide/openssl copydir("{ssl_libs_dir}", "{dist_dir}/PySide/openssl", filter=[ @@ -425,3 +425,23 @@ def get_environment_from_batch_command(env_cmd, initial=None): # let the process finish proc.communicate() return result + + +def regenerate_qt_resources(src, pyside_rcc_path, pyside_rcc_options): + names = os.listdir(src) + for name in names: + srcname = os.path.join(src, name) + if os.path.isdir(srcname): + regenerate_qt_resources(srcname, + pyside_rcc_path, + pyside_rcc_options) + elif srcname.endswith('.qrc'): + # Replace last occurence of '.qrc' in srcname + srcname_split = srcname.rsplit('.qrc', 1) + dstname = '_rc.py'.join(srcname_split) + if os.path.exists(dstname): + log.info('Regenerating %s from %s' % \ + (dstname, os.path.basename(srcname))) + run_process([pyside_rcc_path, + pyside_rcc_options, + srcname, '-o', dstname]) |