Files
ample/AmpleWin/build_exe.bat
T
anomixerandUser fdd02b9d5b Pull Request: Add native Windows (AmpleWin) and Linux (AmpleLinux) ports (#46)
* Initialize and finalize AmpleWin: Full-featured Windows Port with Adaptive UI, optimized engine, and internationalized documentation

* Update media args

* AmpleWin: Finalized Windows Port with Adaptive UI, Optimized Engine, VGM Recording, and Shared Directory Support

* Fix NameError: subprocess not defined in main.py

* UI: Remove redundant MAME path label from Paths tab

* UI: Implement smart slot validation for disabled options and click-to-browse Shared Directory

* feat(win): editable console, launch logic fixes & doc updates

* Fix path quoting issues, add file selectors for A/V, and normalize shared dir path

* feat: sync with Ample v0.285 resources, update to MAME 0.285, and add ROM search filter

* v0.285: Expand ROM library, implement download failover, and advanced SCSI sub-slot emulation

* Adjust ROM download priority: prefer callapple.org for stability, mdk.cab as fallback

* Sync roms.plist with upstream/master

* docs(agent): record upstream synchronization session

* refactor: rename mame_bin to mame directory

* chore: update .gitignore for mame directory rename

* fix(main): update download and detection paths to 'mame'

* fix(main): robust path resolution for pyinstaller builds

* docs(readme): add build_exe.bat to project structure

* fix(build): remove creation of empty mame directory to avoid confusion

* feat(build): auto-generate application icon from Assets.xcassets

* Add AmpleLinux - Linux Port of Ample (Apple II/Mac emulator frontend)

- Ported from AmpleWin with ~20 Linux-specific adaptations
- Replaced winreg with gsettings/KDE dark mode detection
- Replaced os.startfile with xdg-open
- Removed MAME auto-download (users install via package manager)
- Added system-wide MAME detection (PATH, /usr/bin, /usr/games)
- Removed all .exe suffixes from binary references
- Created AmpleLinux.sh launcher script
- Dual-language READMEs (English + Traditional Chinese)

* Fix: use python3 -m pip instead of pip3/pip for modern Linux compatibility

* feat(linux): Finalize AmpleLinux port documentation and build scripts

* Fix formatting for Windows and Linux user notes

Updated user guidance for Windows and Linux users.

* feat(linux): interactive .desktop install, runtime icon loading, updated docs

* docs(linux): clarify mame_downloader.py usage status

* docs: add PR draft template

* fix(linux): add binutils dependency check for pyinstaller

* Update: mame 0.286

---------

Co-authored-by: User <user@example.com>
2026-03-07 21:57:26 -05:00

60 lines
1.5 KiB
Batchfile

@echo off
setlocal
cd /d "%~dp0"
echo [AmpleWin] Building standalone EXE...
:AskPyInstaller
where pyinstaller >nul 2>nul
if %errorlevel% neq 0 (
echo.
echo [INFO] PyInstaller not found. Installing...
pip install pyinstaller
if %errorlevel% neq 0 (
echo [ERROR] Failed to install PyInstaller.
pause
exit /b 1
)
)
echo.
echo [0/2] Generating Application Icon...
python make_icon.py
echo.
echo [1/2] Converting main.py to EXE...
rem --noconfirm: overwrite output directory without asking
rem --onedir: create a directory with exe and dependencies (easier for debugging)
rem --windowed: no console window (for final release)
rem --name: name of the executable
rem --clean: clean cache
pyinstaller --noconfirm --onedir --windowed --clean --name "AmpleWin" --icon "app_icon.ico" main.py
if %errorlevel% neq 0 (
echo [ERROR] Build failed!
pause
exit /b 1
)
echo.
echo [2/2] Copying necessary assets...
rem Copy Resource directory from ..\Ample\Resources
rem We need to copy ..\Ample\Resources to dist\AmpleWin\Ample\Resources
if not exist "dist\AmpleWin\Ample\Resources" mkdir "dist\AmpleWin\Ample\Resources"
echo Copying Resources...
xcopy /E /I /Y "..\Ample\Resources\*.*" "dist\AmpleWin\Ample\Resources\" >nul
echo.
echo [SUCCESS] Build complete!
echo The standalone application is located in: AmpleWin\dist\AmpleWin\AmpleWin.exe
echo.
echo Cleaning up build artifacts...
if exist "build" rmdir /s /q "build"
if exist "AmpleWin.spec" del "AmpleWin.spec"
pause