summaryrefslogtreecommitdiff
path: root/build_release.sh
diff options
context:
space:
mode:
authorIndrajith K L2025-11-03 18:11:34 +0530
committerIndrajith K L2025-11-03 18:11:34 +0530
commit4859c415cc7c2274a642b045ff3016b7aae3dbd1 (patch)
tree7be4f439426874fc0207de87261c955f209b0498 /build_release.sh
parentf4d927aac0f5ce13eca3bc57595d71827b40e657 (diff)
downloadreilua-enhanced-4859c415cc7c2274a642b045ff3016b7aae3dbd1.tar.gz
reilua-enhanced-4859c415cc7c2274a642b045ff3016b7aae3dbd1.tar.bz2
reilua-enhanced-4859c415cc7c2274a642b045ff3016b7aae3dbd1.zip
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.
Diffstat (limited to 'build_release.sh')
-rw-r--r--build_release.sh150
1 files changed, 150 insertions, 0 deletions
diff --git a/build_release.sh b/build_release.sh
new file mode 100644
index 0000000..758ce34
--- /dev/null
+++ b/build_release.sh
@@ -0,0 +1,150 @@
+#!/bin/bash
+# ReiLua Release Build Script
+# Run this from w64devkit shell
+
+echo "================================"
+echo "ReiLua - Release Build"
+echo "================================"
+echo ""
+
+# Check if we're in the right directory
+if [ ! -f "CMakeLists.txt" ]; then
+ echo "ERROR: Please run this script from the ReiLua root directory"
+ exit 1
+fi
+
+# Navigate to build directory
+cd build || exit 1
+
+# Clean old embedded files
+echo "Cleaning old embedded files..."
+rm -f embedded_main.h embedded_assets.h
+
+# Check for Lua files
+echo ""
+echo "Checking for Lua files..."
+LUA_FILES=$(ls *.lua 2>/dev/null | wc -l)
+
+if [ "$LUA_FILES" -eq 0 ]; then
+ echo ""
+ echo "WARNING: No Lua files found in build directory!"
+ echo ""
+ echo "Please copy your Lua files:"
+ echo " cd build"
+ echo " cp ../your_game/*.lua ."
+ echo ""
+ read -p "Do you want to continue anyway? (y/N): " -n 1 -r
+ echo ""
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ exit 1
+ fi
+else
+ echo "Found $LUA_FILES Lua file(s):"
+ ls -1 *.lua
+fi
+
+# Check for assets folder
+echo ""
+echo "Checking for assets..."
+if [ ! -d "assets" ]; then
+ echo ""
+ echo "WARNING: No assets folder found!"
+ echo ""
+ echo "To embed assets, create the folder and copy files:"
+ echo " cd build"
+ echo " mkdir assets"
+ echo " cp ../your_game/assets/* assets/"
+ echo ""
+ read -p "Do you want to continue without assets? (y/N): " -n 1 -r
+ echo ""
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ exit 1
+ fi
+ EMBED_ASSETS="OFF"
+else
+ ASSET_FILES=$(find assets -type f 2>/dev/null | wc -l)
+ echo "Found $ASSET_FILES asset file(s) in assets folder"
+ EMBED_ASSETS="ON"
+fi
+
+echo ""
+echo "================================"
+echo "Build Configuration"
+echo "================================"
+echo "Lua Embedding: ON"
+echo "Asset Embedding: $EMBED_ASSETS"
+echo "Build Type: Release"
+echo "================================"
+echo ""
+read -p "Press Enter to continue or Ctrl+C to cancel..."
+
+# Clean CMake cache to ensure fresh configuration
+echo ""
+echo "Cleaning CMake cache..."
+rm -rf CMakeCache.txt CMakeFiles/
+
+# Configure with embedding enabled
+echo ""
+echo "Configuring CMake for release..."
+cmake -G "MinGW Makefiles" .. -DEMBED_MAIN=ON -DEMBED_ASSETS=$EMBED_ASSETS -DCMAKE_BUILD_TYPE=Release
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: CMake configuration failed!"
+ exit 1
+fi
+
+# Build
+echo ""
+echo "Building ReiLua Release..."
+make
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: Build failed!"
+ exit 1
+fi
+
+# Show embedded file info
+echo ""
+echo "================================"
+echo "Embedded Files Summary"
+echo "================================"
+
+if [ -f "embedded_main.h" ]; then
+ echo ""
+ echo "Embedded Lua files:"
+ grep 'Embedded file:' embedded_main.h | sed 's/.*Embedded file: / - /'
+else
+ echo "No Lua files embedded"
+fi
+
+if [ -f "embedded_assets.h" ]; then
+ echo ""
+ echo "Embedded assets:"
+ grep 'Embedded asset:' embedded_assets.h | sed 's/.*Embedded asset: / - /' | sed 's/ (.*//'
+else
+ echo "No assets embedded"
+fi
+
+# Get executable size
+echo ""
+echo "================================"
+echo "Build Complete!"
+echo "================================"
+EXESIZE=$(du -h ReiLua.exe | cut -f1)
+echo ""
+echo "Executable: ReiLua.exe ($EXESIZE)"
+echo "Location: $(pwd)/ReiLua.exe"
+echo ""
+echo "Your game is ready for distribution!"
+echo ""
+echo "To test the release build:"
+echo " ./ReiLua.exe --log (with console)"
+echo " ./ReiLua.exe (production mode)"
+echo ""
+echo "To distribute:"
+echo " - Copy ReiLua.exe to your distribution folder"
+echo " - Rename it to your game name (optional)"
+echo " - That's it! Single file distribution!"
+echo ""