mirror of
https://github.com/blw1138/Zordon.git
synced 2026-02-05 05:36:09 +00:00
Fix pyinstaller spec files
This commit is contained in:
212
server.spec
212
server.spec
@@ -1,90 +1,158 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
|
||||
# - get version from version file
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
from pathlib import Path
|
||||
import os
|
||||
import sys
|
||||
import platform
|
||||
sys.path.insert(0, os.path.abspath('.'))
|
||||
from version import APP_NAME, APP_VERSION, APP_AUTHOR
|
||||
|
||||
APP_NAME = APP_NAME + " Server"
|
||||
datas = [('resources', 'resources'), ('src/engines/blender/scripts/', 'src/engines/blender/scripts')]
|
||||
# ------------------------------------------------------------
|
||||
# Project paths
|
||||
# ------------------------------------------------------------
|
||||
|
||||
project_root = Path(SPECPATH).resolve()
|
||||
src_dir = project_root / "src"
|
||||
|
||||
# Ensure `src.*` imports work during analysis
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Import version info
|
||||
# ------------------------------------------------------------
|
||||
|
||||
from src.version import APP_NAME, APP_VERSION, APP_AUTHOR
|
||||
|
||||
APP_NAME = f"{APP_NAME}-server"
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# PyInstaller data / imports
|
||||
# ------------------------------------------------------------
|
||||
|
||||
datas = [
|
||||
("resources", "resources"),
|
||||
("src/engines/blender/scripts", "src/engines/blender/scripts"),
|
||||
]
|
||||
|
||||
binaries = []
|
||||
hiddenimports = ['zeroconf']
|
||||
tmp_ret = collect_all('zeroconf')
|
||||
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
|
||||
hiddenimports = ["zeroconf", "src.version"]
|
||||
|
||||
tmp_ret = collect_all("zeroconf")
|
||||
datas += tmp_ret[0]
|
||||
binaries += tmp_ret[1]
|
||||
hiddenimports += tmp_ret[2]
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Analysis
|
||||
# ------------------------------------------------------------
|
||||
|
||||
a = Analysis(
|
||||
['server.py'],
|
||||
pathex=[],
|
||||
binaries=binaries,
|
||||
datas=datas,
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=1, # fyi: optim level 2 breaks on windows
|
||||
["server.py"],
|
||||
pathex=[str(project_root)],
|
||||
binaries=binaries,
|
||||
datas=datas,
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=1, # optimize=2 breaks Windows builds
|
||||
)
|
||||
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
if platform.system() == 'Windows':
|
||||
# ------------------------------------------------------------
|
||||
# Platform targets
|
||||
# ------------------------------------------------------------
|
||||
|
||||
import pyinstaller_versionfile
|
||||
import tempfile
|
||||
if platform.system() == "Darwin": # macOS
|
||||
|
||||
version_file_path = os.path.join(tempfile.gettempdir(), 'versionfile.txt')
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
[],
|
||||
exclude_binaries=True,
|
||||
name=APP_NAME,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=True,
|
||||
upx=True,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
|
||||
pyinstaller_versionfile.create_versionfile(
|
||||
output_file=version_file_path,
|
||||
version=APP_VERSION,
|
||||
company_name=APP_AUTHOR,
|
||||
file_description=APP_NAME,
|
||||
internal_name=APP_NAME,
|
||||
legal_copyright=f"© {APP_AUTHOR}",
|
||||
original_filename=f"{APP_NAME}.exe",
|
||||
product_name=APP_NAME
|
||||
)
|
||||
app = BUNDLE(
|
||||
exe,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
strip=True,
|
||||
name=f"{APP_NAME}.app",
|
||||
icon="resources/Server.png",
|
||||
bundle_identifier=None,
|
||||
version=APP_VERSION,
|
||||
)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name=APP_NAME,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=True,
|
||||
upx=True,
|
||||
console=True,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
version=version_file_path
|
||||
)
|
||||
elif platform.system() == "Windows":
|
||||
|
||||
else: # linux / macOS
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name=APP_NAME,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=True,
|
||||
upx=True,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None
|
||||
)
|
||||
import pyinstaller_versionfile
|
||||
import tempfile
|
||||
|
||||
version_file_path = os.path.join(
|
||||
tempfile.gettempdir(), "versionfile.txt"
|
||||
)
|
||||
|
||||
pyinstaller_versionfile.create_versionfile(
|
||||
output_file=version_file_path,
|
||||
version=APP_VERSION,
|
||||
company_name=APP_AUTHOR,
|
||||
file_description=APP_NAME,
|
||||
internal_name=APP_NAME,
|
||||
legal_copyright=f"© {APP_AUTHOR}",
|
||||
original_filename=f"{APP_NAME}.exe",
|
||||
product_name=APP_NAME,
|
||||
)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name=APP_NAME,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=True,
|
||||
upx=True,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
version=version_file_path,
|
||||
)
|
||||
|
||||
else: # Linux
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name=APP_NAME,
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=True,
|
||||
upx=True,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
)
|
||||
Reference in New Issue
Block a user