Files
reilua-enhanced/BUILD_SCRIPTS.md
Indrajith K L 4859c415cc Add build scripts and Windows icon/resources
Added:
- build_dev.bat / build_dev.sh - Development build scripts
- build_release.bat / build_release.sh - Release build scripts with embedding
- icon.ico - Default Windows icon for executable
- resources.rc - Windows resource file for icon and exe metadata
- BUILD_SCRIPTS.md - Complete documentation for build scripts

Features:
- Automated development builds (no embedding, fast iteration)
- Automated release builds (with Lua and asset embedding)
- Interactive verification and cleanup
- Custom icon and version info in Windows executables
- Cross-platform scripts (Windows .bat and Unix .sh)
- Safety checks and helpful messages

The build scripts provide one-command building for both development
and release workflows, with clear instructions and progress feedback.
2025-11-03 18:11:34 +05:30

4.7 KiB

Build Scripts Documentation

ReiLua includes automated build scripts for easy development and release builds.

Available Scripts

Development Build Scripts

  • Windows: build_dev.bat
  • Linux/Unix: build_dev.sh

Release Build Scripts

  • Windows: build_release.bat
  • Linux/Unix: build_release.sh

Development Build

Purpose

Fast iteration during game development with external Lua files and assets.

Usage

Windows:

build_dev.bat

Linux/Unix:

chmod +x build_dev.sh
./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: build_dev.bat clean or ./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:

build_release.bat

Linux/Unix:

chmod +x build_release.sh
./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 files
  • EMBED_ASSETS=ON - Embeds all assets (if assets folder exists)
  • CMAKE_BUILD_TYPE=Release - Optimized build

Customizing Your Executable

Adding Custom Icon

  1. Replace icon.ico with your own icon file
  2. Keep the same filename or update resources.rc
  3. 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
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
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 ..
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.txt exists in parent directory

"No Lua files found"

  • Copy your Lua files to build/ directory before release build
  • Ensure main.lua exists (required entry point)

"Build failed"

  • Check compiler errors in output
  • Ensure all dependencies are installed
  • Try clean build: 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