@echo off setlocal enabledelayedexpansion REM === PATH SETUP === set PARENT_DIR=%~dp0 set BUILD_DIR=%~dp0.. set ICON_PATH=data/assets/icon.ico set CONFIG_FILE=%PARENT_DIR%\config.json REM === Extract values from config.json === for /f "delims=" %%i in ('powershell -NoProfile -Command ^ "Get-Content '%CONFIG_FILE%' | ConvertFrom-Json | Select-Object -ExpandProperty python_version"') do set PYTHON_VERSION=%%i for /f "delims=" %%i in ('powershell -NoProfile -Command ^ "Get-Content '%CONFIG_FILE%' | ConvertFrom-Json | Select-Object -ExpandProperty app_name"') do set APP_NAME=%%i for /f "delims=" %%i in ('powershell -NoProfile -Command ^ "Get-Content '%CONFIG_FILE%' | ConvertFrom-Json | Select-Object -ExpandProperty architecture"') do set ARCHITECTURE=%%i set VENV_PATH=%PARENT_DIR%\WINenv_%ARCHITECTURE% set EXE_NAME=%APP_NAME%-Windows-%ARCHITECTURE% set PYTHON_IN_VENV=%VENV_PATH%\Scripts\python.exe REM === Construct full python path from config.json === set SYSTEM_PYTHON=C:\Logiciels\Python\%ARCHITECTURE%\%PYTHON_VERSION%\python.exe REM === Verify Python existence === if not exist "%SYSTEM_PYTHON%" ( echo [ERROR] Python not found at: %SYSTEM_PYTHON% exit /b 1 ) REM === Check if virtual environment exists === if not exist "%VENV_PATH%\Scripts\activate.bat" ( echo [INFO] Virtual environment not found. Creating... "%SYSTEM_PYTHON%" -m venv "%VENV_PATH%" "%PYTHON_IN_VENV%" -m pip install --upgrade pip "%PYTHON_IN_VENV%" -m pip install -r "%PARENT_DIR%\requirements.txt" ) else ( echo [INFO] Virtual environment found. ) REM === Run PyInstaller === "%PYTHON_IN_VENV%" -m PyInstaller ^ --distpath "%BUILD_DIR%\Build" ^ --workpath "%BUILD_DIR%\Building" ^ --clean ^ "%PARENT_DIR%\BUILD.spec" REM === Clean build cache === rmdir /s /q "%BUILD_DIR%\Building" endlocal