From cbf91fa2ea43d637b1049ecbb79e752a83bac6ed Mon Sep 17 00:00:00 2001 From: Sam Scholten Date: Tue, 14 Oct 2025 14:00:51 +1000 Subject: Automate libffi DLL bundling for PyInstaller on Windows --- justfile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'justfile') diff --git a/justfile b/justfile index 478f4f3..d3fa021 100644 --- a/justfile +++ b/justfile @@ -8,5 +8,14 @@ gui: # Build the picostream GUI executable build-gui: uv pip install pyinstaller pyinstaller-hooks-contrib - uv run pyinstaller --onefile --windowed --name PicoStream picostream/main.py + FFI_FLAG := `uv run python -c ' +import sys, os, glob +if sys.platform == "win32": + dlls_dir = os.path.join(os.path.dirname(sys.executable), "DLLs") + ffi_dll_path = next(glob.iglob(os.path.join(dlls_dir, "libffi-*.dll")), None) + if ffi_dll_path: + # The separator for --add-binary is platform-dependent (os.pathsep) + print(f"--add-binary \"{ffi_dll_path}{os.pathsep}.\"") +'` + uv run pyinstaller --onefile --windowed --name PicoStream {{FFI_FLAG}} picostream/main.py -- cgit v1.2.3