Split the binary into gui and headless versions

This commit is contained in:
2026-02-27 22:53:14 +01:00
parent b9da617009
commit bc23f380db
2 changed files with 29 additions and 3 deletions

View File

@@ -23,8 +23,10 @@ rm -rf build dist
echo "Building binary with PyInstaller..."
uv run pyinstaller pyfa.spec
# cp oleacc* dist/pyfa/
# Headless CLI exe (console) into main dist folder
if [ -f dist/pyfa_headless/pyfa-headless.exe ]; then
cp dist/pyfa_headless/pyfa-headless.exe dist/pyfa/
fi
echo ""
echo "Build complete! Binary is located at: dist/pyfa/pyfa.exe"
echo "You can run it with: dist/pyfa/pyfa.exe"
echo "Build complete! dist/pyfa/pyfa.exe (GUI), dist/pyfa/pyfa-headless.exe (CLI, use with --headless)"

View File

@@ -96,6 +96,19 @@ exe = EXE(
contents_directory='app',
)
# Headless CLI: console=True so stdout/stdin exist; use: pyfa-headless.exe --headless
exe_headless = EXE(
pyz,
a.scripts,
exclude_binaries=True,
name='pyfa-headless',
debug=debug,
strip=False,
upx=upx,
console=True,
contents_directory='app',
)
coll = COLLECT(
exe,
a.binaries,
@@ -106,6 +119,17 @@ coll = COLLECT(
name='pyfa',
)
# Headless exe; build puts it in dist/pyfa_headless/; copy pyfa-headless.exe into dist/pyfa/ after build
coll_headless = COLLECT(
exe_headless,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=upx,
name='pyfa_headless',
)
if platform.system() == 'Darwin':
info_plist = {
'NSHighResolutionCapable': 'True',