Files
sensor-bench/build/sensor_bench_operator.spec
T
2026-09-01 11:14:56 +08:00

111 lines
2.6 KiB
RPMSpec

# -*- mode: python ; coding: utf-8 -*-
from pathlib import Path
from PyInstaller.utils.hooks import collect_all, collect_submodules
repo_root = Path.cwd()
src_dir = repo_root / "src"
operator_src = repo_root / "internal" / "src"
work_dir = repo_root / "build" / "pyinstaller_work_operator"
datas = [
# Operator-owned options / locales / workflow steps (private).
(str(repo_root / "internal" / "config"), "config"),
(str(repo_root / "internal" / "steps"), "steps"),
# Public sensor JSON configs (ddjx01, mini, …) for the shared acquisition path.
(str(repo_root / "config"), "config"),
]
binaries = []
hiddenimports = [
"sensor_bench_operator",
"sensor_bench_operator.app",
"sensor_bench_operator.paths",
"sensor_bench.main",
"sensor_bench.exhibition_app",
"sensor_bench.acquisition",
"sensor_bench.dd06_acquisition",
"sensor_bench.roi_geometry",
"sensor_bench.camera_discovery",
"sensor_bench.force_calibration",
"sensor_bench.config_loader",
"sensor_bench.i18n",
"sensor_bench.paths",
"sensor_bench.plot_history",
"sensor_bench.recorder",
"orisys",
"orisys_blend",
"scipy.fft",
"scipy.ndimage",
"scipy.sparse.linalg",
"numba",
"llvmlite",
]
for package in ("PyQt5", "pyqtgraph", "cv2", "orisys", "orisys_blend", "numba", "llvmlite"):
pkg_datas, pkg_binaries, pkg_hidden = collect_all(package)
datas += pkg_datas
binaries += pkg_binaries
hiddenimports += pkg_hidden
hiddenimports += collect_submodules("orisys_blend")
hiddenimports += collect_submodules("sensor_bench")
hiddenimports += collect_submodules("sensor_bench_operator")
excludes = [
"cupy",
"cupyx",
"pyopencl",
"open3d",
"matplotlib",
"tkinter",
"pytest",
"pip",
"wheel",
]
a = Analysis(
[str(repo_root / "internal" / "run_operator.py")],
pathex=[str(repo_root), str(src_dir), str(operator_src)],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=excludes,
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name="SensorBenchOperator",
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name="SensorBenchOperator",
)