gui/gui.spec (84 lines of code) (raw):

# -*- mode: python -*- import sys from PyInstaller.utils.hooks import collect_all, collect_submodules from mozregression.pyinstaller import BUNDLE_WITH_TK IS_MAC = sys.platform == "darwin" block_cipher = None datas, binaries, hiddenimports = [], [], [] for pkgname in [ "glean", "glean_parser", "mozregression", "yamllint", "bs4", "redo", "taskcluster", "mozinstall", "mozversion", "mozdevice", "mozrunner", ]: pkg_datas, pkg_binaries, pkg_hiddenimports = collect_all(pkgname) datas.extend(pkg_datas) binaries.extend(pkg_binaries) hiddenimports.extend(pkg_hiddenimports) # workaround this bad interaction between setuptools and pyinstaller: # https://github.com/pypa/setuptools/issues/1963 hiddenimports.extend(collect_submodules("pkg_resources")) analysis_kwargs = { "binaries": binaries, "datas": datas, "hiddenimports": hiddenimports, "hookspath": [], "excludes": [], "win_no_prefer_redirects": False, "win_private_assemblies": False, "cipher": block_cipher, "noarchive": False, } if IS_MAC: analysis_kwargs["runtime_hooks"] = ["splash_hook.py"] a = Analysis(["mozregression-gui.py"], **analysis_kwargs) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) if IS_MAC: exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name="mozregression GUI", debug=False, bootloader_ignore_signals=False, strip=False, upx=False, console=False, target_arch="universal2", ) app = BUNDLE_WITH_TK( exe, strip=False, upx=True, name="mozregression GUI.app", icon="icons/app_icon.icns", bundle_identifier=None, info_plist={"NSPrincipalClass": "NSApplication", "NSHighResolutionCapable": "True"}, ) else: exe = EXE( pyz, a.scripts, [], name="mozregression-gui", exclude_binaries=True, debug=False, bootloader_ignore_signals=False, strip=False, upx=False, console=False, icon="wininst/app_icon.ico", ) coll = COLLECT( exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=False, name="mozregression-gui" )