Changes Docs Folders
This commit is contained in:
213
docs_md/BUILD_SCRIPTS.md
Normal file
213
docs_md/BUILD_SCRIPTS.md
Normal file
@@ -0,0 +1,213 @@
|
||||
# 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:
|
||||
```cmd
|
||||
scripts\build_dev.bat
|
||||
```
|
||||
|
||||
Linux/Unix:
|
||||
```bash
|
||||
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 clean` or `scripts/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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
```cmd
|
||||
scripts\build_release.bat
|
||||
```
|
||||
|
||||
Linux/Unix:
|
||||
```bash
|
||||
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 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:
|
||||
|
||||
```rc
|
||||
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`:
|
||||
```cmake
|
||||
project( YourGameName ) # Line 6
|
||||
```
|
||||
|
||||
After building, the executable will be named `YourGameName.exe`.
|
||||
|
||||
## Workflow Examples
|
||||
|
||||
### Development Workflow
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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.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: `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`
|
||||
Reference in New Issue
Block a user