4.8 KiB
4.8 KiB
Build Scripts Documentation
ReiLua includes automated build scripts for easy development and release builds.
Available Scripts
Development Build Scripts
- Windows:
scripts\build_dev.bat - Linux/Unix:
scripts/build_dev.sh
Release Build Scripts
- Windows:
scripts\build_release.bat - Linux/Unix:
scripts/build_release.sh
Development Build
Purpose
Fast iteration during game development with external Lua files and assets.
Usage
Windows:
scripts\build_dev.bat
Linux/Unix:
chmod +x scripts/build_dev.sh
scripts/build_dev.sh
Features
- No embedding - loads Lua and assets from file system
- Fast build times
- Edit code and assets without rebuilding
- Automatic cleanup of embedded files
- Warns if Lua files or assets are in build directory
- Optional clean build:
scripts\build_dev.bat cleanorscripts/build_dev.sh clean
Output
- Development executable:
build/ReiLua.exe - Run your game:
cd your_game && path/to/build/ReiLua.exe - Debug mode:
path/to/build/ReiLua.exe --log
Release Build
Purpose
Create a single-file executable for distribution with all code and assets embedded.
Preparation
Before running the release build, prepare your files:
cd build
# Copy all Lua files
copy ..\your_game\*.lua .
# Or: cp ../your_game/*.lua .
# Copy assets
mkdir assets
copy ..\your_game\assets\* assets\
# Or: cp -r ../your_game/assets/* assets/
Usage
Windows:
scripts\build_release.bat
Linux/Unix:
chmod +x scripts/build_release.sh
scripts/build_release.sh
Features
- Embeds all Lua files from
build/directory - Embeds all assets from
build/assets/folder - Creates single-file executable
- Release optimization enabled
- Verifies Lua files and assets before building
- Shows summary of embedded files after build
- Interactive confirmation before building
Output
- Release executable:
build/ReiLua.exe - Ready for distribution - no external dependencies
- Can be renamed to your game name
Build Configuration
The release build automatically configures:
EMBED_MAIN=ON- Embeds all Lua filesEMBED_ASSETS=ON- Embeds all assets (if assets folder exists)CMAKE_BUILD_TYPE=Release- Optimized build
Customizing Your Executable
Adding Custom Icon
- Replace
icon.icowith your own icon file - Keep the same filename or update
resources.rc - Rebuild
Changing Executable Properties
Edit resources.rc to customize:
VALUE "CompanyName", "Your Studio Name"
VALUE "FileDescription", "Your Game Description"
VALUE "ProductName", "Your Game Name"
VALUE "LegalCopyright", "Copyright (C) Your Name, 2025"
Renaming the Executable
Edit CMakeLists.txt:
project( YourGameName ) # Line 6
After building, the executable will be named YourGameName.exe.
Workflow Examples
Development Workflow
# Initial setup
scripts\build_dev.bat
# Edit your Lua files in your game directory
# ... make changes ...
# Just run - no rebuild needed!
cd your_game
path\to\build\ReiLua.exe
# If you modify C code, rebuild
scripts\build_dev.bat
Release Workflow
# 1. Prepare files
cd build
copy ..\your_game\*.lua .
mkdir assets
copy ..\your_game\assets\* assets\
# 2. Build release
cd ..
scripts\build_release.bat
# 3. Test
cd build
ReiLua.exe --log
# 4. Distribute
# Copy build\ReiLua.exe to your distribution folder
Troubleshooting
"CMake configuration failed"
- Ensure CMake is installed and in PATH
- Ensure MinGW is installed and in PATH
- Check
CMakeLists.txtexists in parent directory
"No Lua files found"
- Copy your Lua files to
build/directory before release build - Ensure
main.luaexists (required entry point)
"Build failed"
- Check compiler errors in output
- Ensure all dependencies are installed
- Try clean build:
scripts\build_dev.bat clean
Development build embedding warning
- The dev build script warns if it finds Lua files or assets in build/
- These should be removed for development builds
- The script offers to remove them automatically
Script Features
Safety Features
- Checks for correct directory before running
- Validates required files exist
- Warns about potential issues
- Interactive confirmations for release builds
- Automatic cleanup of old embedded files
User Friendly
- Clear progress messages
- Colored output (where supported)
- Helpful error messages
- Pause at end to review results
- Quick reference commands shown after build
Notes
- Development builds are much faster than release builds
- Release builds may take longer due to embedding and optimization
- Always test your release build before distribution
- The scripts work on both Windows (CMD/PowerShell) and Unix shells
- On Unix, make scripts executable:
chmod +x build_*.sh