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"
)