From 0fbc961bb8e7b9864c0982bb86b0de2e25d6f4aa Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sun, 9 Nov 2025 06:37:45 +0530 Subject: [PATCH] Add macOS support and project creation tool - Add macOS static and dynamic library linking support - Add cross-platform build scripts for Windows, macOS, and Linux - Add project creation script with metadata embedding - Add macOS app bundle creation with icon support - Update CMakeLists.txt for platform detection - Fix STB rect pack duplicate symbols - Remove test images and unused files - Consolidate documentation into MACOS.md --- .DS_Store | Bin 0 -> 18436 bytes CMakeLists.txt | 83 ++++- MACOS.md | 67 ++++ README.md | 14 +- deps/lua-5.4.7.tar.gz | 7 + html_doc_issue.png | Bin 21089 -> 0 bytes projects/.DS_Store | Bin 0 -> 8196 bytes projects/README.md | 4 + remove_this.png | Bin 9696 -> 0 bytes scripts/.DS_Store | Bin 0 -> 8196 bytes scripts/build_dev.sh | 84 ++++- scripts/build_release.sh | 90 ++++- scripts/create_project.sh | 578 +++++++++++++++++++++++++++++ scripts/macos/build_static_libs.sh | 149 ++++++++ scripts/macos/create_app_bundle.sh | 152 ++++++++ src/shapes.c | 3 + still_exists.png | Bin 62075 -> 0 bytes why.png | Bin 56718 -> 0 bytes 18 files changed, 1193 insertions(+), 38 deletions(-) create mode 100644 .DS_Store create mode 100644 MACOS.md create mode 100644 deps/lua-5.4.7.tar.gz delete mode 100644 html_doc_issue.png create mode 100644 projects/.DS_Store create mode 100644 projects/README.md delete mode 100644 remove_this.png create mode 100644 scripts/.DS_Store mode change 100644 => 100755 scripts/build_dev.sh mode change 100644 => 100755 scripts/build_release.sh create mode 100755 scripts/create_project.sh create mode 100755 scripts/macos/build_static_libs.sh create mode 100755 scripts/macos/create_app_bundle.sh delete mode 100644 still_exists.png delete mode 100644 why.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a7c8a329d5ca0c5a79b9c2ca3bc37607a7da88c9 GIT binary patch literal 18436 zcmeHPTWlOx8UFvV9nX3bcVe8x30b_UX%kZ8I8N+h3hCNww|3*ij@Pao=i=;TVh5bg+~>`^OT$^$87r8Jmbo;Qb?wrE zgPQHxw4E(M*zB|Il=ZYPoh`VwJ?45=(Q=*B(?xT+DC$H*fvV{l&n*;_vax9k?fX(q z;u@oQq3k_r7Cgj}$Zs3(GqyLqr+LTDUGWDF9yPx-Gv3yDSDH3I%C>Xi@xlc z9J-S%m^kMqJY4szC^+Hftcw;(E?G`)!bvZf=SA^I+AEIcO~=gLYT3Q#y?bNP)=3DM z%aco1t~h@>?PX0TXE}3Ii$2r9le2!;1%^A+J%?{`JDK798zRDlx75)T2 z%b(&;^Jn;T{CWN&e~Dkc-y)KYTA0v~pR3vXPRd8(AnL{0Wa8F6!J=LVvAKtO4>C-c3&fc@b`=!QR zt?xhZ!LEltk{BF5aq5;B?9t}v&dRV0562lRhmkKvbRi-Jqg+*z>p=RvNGKvQo;KJ zMkfAq)&12&Ckr_XwgB!7Nq_r4OJ|n6%DTzT3NXE0;a&B5R6myjwMrG!#gf;bE}Rj$ z3D>nVm2^7uB*@UL(VTRhV%l=df>Z$dgUHz_P!)Hn-z_;gPwJ-p3O%AnW{s9BSGqbM zZjT@BJ$ki0exlwB4CRFwkm64`(pcby_(kg z3I}8D5%5XLas84*(Zdn2NXc=1)uYiK9R$^9$bM08^bs8-wL+Ku!sh6sdSsPQ`(^#H z0l_=NJXv%$)*l)fU=n1Ykpb~eGZV{ zS`cXyBt5)veQdEC2}W2A`d@YPF<}r;wGh9eye(FMt*|R@tK-QVuk1z%5uXC@mL5 zs-?@@y+TrW7J)X)Qg1gL>+bArk9QyGev3a&l|wa}K{^S?J{WWra<#nLq15_-gxru^A>>l@iX6Z|UO<_kJitP5r$Hki zL?3z~;Kf~_gmj75s$8NG&`r`1S~^LO)W3+M}5j6#1M5F?y-0K_y0 zG*3wYl%(UhgA|}qAAr%sdhG}>6zIW@Ks&zfgnTM@v4wE>fgY{d7yEWQ^{yj5*k#c3 zR-O8q`>O0Y5Ze^iR4U)Ee82Mj8|nMkn{sL~MlHr{!o?WH{}ungCqHrfpM3+Qb{?vo zha0f-aFbBqcYQav_!dZr@Baqx{QdvC-cHH@$^!3X3vlf~YC!zHR{69ee6tz~;y5ng z5JAYT__0*MNr=dRg!mM1NMukhKdC`{LF7e1dc}{CLioRb2&nkK;{T5Nj}rd|r5OC7 literal 0 HcmV?d00001 diff --git a/CMakeLists.txt b/CMakeLists.txt index ad67d96..f0b57da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,17 @@ include( EnumOption ) cmake_minimum_required( VERSION 3.9 ) project( ReiLua ) +# Find Python interpreter (python3 or python) +find_package(Python3 COMPONENTS Interpreter) +if(Python3_FOUND) + set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) +else() + find_program(PYTHON_EXECUTABLE NAMES python3 python) + if(NOT PYTHON_EXECUTABLE) + message(FATAL_ERROR "Python not found. Please install Python 3.") + endif() +endif() + # To make web build # cmake .. -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DPLATFORM=Web @@ -35,7 +46,7 @@ set( LOGO_FILES add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_logo.h - COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_logo.py + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/embed_logo.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_logo.h ${CMAKE_SOURCE_DIR}/logo/raylib_logo.png ${CMAKE_SOURCE_DIR}/logo/reilua_logo.png @@ -50,7 +61,7 @@ set( FONT_FILE "${CMAKE_SOURCE_DIR}/fonts/Oleaguid.ttf" ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_font.h - COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_font.py + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/embed_font.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_font.h ${CMAKE_SOURCE_DIR}/fonts/Oleaguid.ttf DEPENDS ${FONT_FILE} @@ -73,7 +84,7 @@ if( EMBED_MAIN ) if( LUA_FILES ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h - COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_lua.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h ${LUA_FILES} + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/embed_lua.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_main.h ${LUA_FILES} DEPENDS ${LUA_FILES} COMMENT "Embedding Lua files into executable..." ) @@ -90,7 +101,7 @@ if( EMBED_ASSETS ) if( ASSET_FILES ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h - COMMAND python ${CMAKE_SOURCE_DIR}/scripts/embed_assets.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h ${ASSET_FILES} + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/embed_assets.py ${CMAKE_CURRENT_BINARY_DIR}/embedded_assets.h ${ASSET_FILES} DEPENDS ${ASSET_FILES} COMMENT "Embedding asset files into executable..." ) @@ -132,7 +143,54 @@ if( PLATFORM STREQUAL "Web" ) set( resources_dir "resources@/" ) # Sets resources as root for the virtual file system. set_target_properties( ${PROJECT_NAME} PROPERTIES LINK_FLAGS "--preload-file ${resources_dir}" ) else() # Desktop - if( SHARED ) + if( APPLE ) + # macOS: Try static libraries first, fall back to Homebrew if not available + if( EXISTS "${CMAKE_SOURCE_DIR}/lib/macos/libraylib.a" AND EXISTS "${CMAKE_SOURCE_DIR}/lib/macos/liblua.a" ) + # Static libraries available - use them for single-file distribution + message( "macOS - Using static libraries (single-file distribution)" ) + set( CMAKE_C_COMPILER "clang" ) + set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fobjc-arc" ) + + target_link_libraries( ${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/lib/macos/libraylib.a ) + target_link_libraries( ${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/lib/macos/liblua.a ) + + # macOS frameworks required for raylib + target_link_libraries( ${PROJECT_NAME} "-framework IOKit" ) + target_link_libraries( ${PROJECT_NAME} "-framework Cocoa" ) + target_link_libraries( ${PROJECT_NAME} "-framework OpenGL" ) + target_link_libraries( ${PROJECT_NAME} "-framework CoreFoundation" ) + else() + # Use Homebrew shared libraries (for development) + message( "macOS - Using Homebrew shared libraries (development mode)" ) + message( " To build for distribution, run: ./scripts/macos/build_static_libs.sh" ) + + set( CMAKE_C_COMPILER "clang" ) + set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSHARED -fobjc-arc" ) + + # Find and link Raylib + find_package(PkgConfig REQUIRED) + pkg_check_modules(RAYLIB REQUIRED raylib) + include_directories(${RAYLIB_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} ${RAYLIB_LIBRARIES}) + + # Find and link Lua + pkg_check_modules(LUA REQUIRED lua) + include_directories(${LUA_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} ${LUA_LIBRARIES}) + + # Find and link GLFW + pkg_check_modules(GLFW REQUIRED glfw3) + include_directories(${GLFW_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} ${GLFW_LIBRARIES}) + + # macOS frameworks + target_link_libraries( ${PROJECT_NAME} "-framework IOKit" ) + target_link_libraries( ${PROJECT_NAME} "-framework Cocoa" ) + target_link_libraries( ${PROJECT_NAME} "-framework OpenGL" ) + target_link_libraries( ${PROJECT_NAME} "-framework CoreFoundation" ) + endif() + elseif( SHARED ) + # Linux/Windows with shared libraries message( Shared ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSHARED" ) # find_package( raylib 5.0 REQUIRED ) # Requires at least version 5.0 @@ -145,6 +203,7 @@ else() # Desktop target_link_libraries( ${PROJECT_NAME} lua ) endif() else() + # Static linking (Windows/Linux) message( Static ) target_link_libraries( ${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/lib/libraylib.a ) @@ -156,7 +215,7 @@ else() # Desktop endif() endif() - if( UNIX ) + if( UNIX AND NOT APPLE ) set( CMAKE_C_COMPILER "gcc" ) if( EXPOSE_API_SYMBOLS ) @@ -181,16 +240,10 @@ else() # Desktop target_link_libraries( ${PROJECT_NAME} raylib GLESv2 EGL pthread rt m gbm drm dl atomic ) else() # target_link_libraries( ${PROJECT_NAME} m dl pthread ) - target_link_libraries( ${PROJECT_NAME} m dl pthread glfw ) + if( NOT APPLE ) + target_link_libraries( ${PROJECT_NAME} m dl pthread glfw ) + endif() endif() - elseif( APPLE ) - set( CMAKE_C_COMPILER "clang" ) - - # //TODO Linking to SDL. - - target_link_libraries( ${PROJECT_NAME} "-framework IOKit" ) - target_link_libraries( ${PROJECT_NAME} "-framework Cocoa" ) - target_link_libraries( ${PROJECT_NAME} "-framework OpenGL" ) elseif( WIN32 ) if( EXPOSE_API_SYMBOLS ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DEXPOSE_LUA_API_SYMBOLS" ) diff --git a/MACOS.md b/MACOS.md new file mode 100644 index 0000000..de11cde --- /dev/null +++ b/MACOS.md @@ -0,0 +1,67 @@ +# ReiLua-Enhanced - macOS Setup + +## Quick Start + +### 1. Install Dependencies +```bash +brew install glfw raylib lua pkg-config +``` + +### 2. Build Static Libraries (One Time) +```bash +./scripts/macos/build_static_libs.sh +``` + +This creates `lib/macos/libraylib.a` and `lib/macos/liblua.a` for distribution builds. + +### 3. Build Your Project +```bash +./scripts/build_dev.sh # Development +./scripts/build_release.sh # Release with embedded assets +``` + +### 4. Create App Bundle (macOS Distribution) +```bash +./scripts/macos/create_app_bundle.sh +``` + +## Build Modes + +### Static Libraries (Recommended) +- Creates single executable with no external dependencies +- Required for distribution +- Run `build_static_libs.sh` once to set up + +### Homebrew Libraries (Development) +- Faster builds during development +- Automatically used if static libs not found +- Requires users to have Homebrew packages installed + +## Icon Support + +Windows: Icon embedded via `resources.rc` +macOS: Icon requires .app bundle via `create_app_bundle.sh` + +## Directory Structure + +``` +/your/dev/folder/ +├── ReiLua-Enhanced/ +├── lua/ (Lua 5.4 source) +└── raylib/ (Raylib 5.5 source) +``` + +Build scripts automatically find lua and raylib as sibling directories. + +## Troubleshooting + +**Missing static libraries:** +Run `./scripts/macos/build_static_libs.sh` + +**Missing Homebrew packages:** +```bash +brew install glfw raylib lua pkg-config +``` + +**GLFW duplicate warnings:** +Harmless. Raylib includes its own GLFW. diff --git a/README.md b/README.md index f8771b3..e5167e0 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,14 @@ ## About This Version This is an enhanced version of ReiLua featuring: -- **Embedded Lua Support** - Bundle all your Lua code into a single executable -- **Embedded Assets** - Package images, sounds, and other assets into your game -- **Splash Screens** - Customizable startup screens featuring Raylib and ReiLua -- **Asset Loading System** - Loading screen with progress tracking -- **Automated Build Scripts** - One-command development and release builds -- **Console Control** - Debug logging system for development +- Embedded Lua Support - Bundle all your Lua code into a single executable +- Embedded Assets - Package images, sounds, and other assets into your game +- Splash Screens - Customizable startup screens featuring Raylib and ReiLua +- Asset Loading System - Loading screen with progress tracking +- Automated Build Scripts - One-command development and release builds +- Console Control - Debug logging system for development +- macOS Support - Build for macOS with static linking (see [MACOS.md](MACOS.md)) +- Project Creation Tool - Automated project setup with metadata embedding ## What is ReiLua? diff --git a/deps/lua-5.4.7.tar.gz b/deps/lua-5.4.7.tar.gz new file mode 100644 index 0000000..5f1d41d --- /dev/null +++ b/deps/lua-5.4.7.tar.gz @@ -0,0 +1,7 @@ + +301 Moved Permanently + +

301 Moved Permanently

+
nginx/1.20.1
+ + diff --git a/html_doc_issue.png b/html_doc_issue.png deleted file mode 100644 index cf8e947c7c0ec92a265c1c8ea096a7b3be63e0d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21089 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 M-Ft8kdv{#+U#L2dg8%>k diff --git a/projects/.DS_Store b/projects/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e952635ec668aba81e59640d1dd596dac3acbc94 GIT binary patch literal 8196 zcmeHMU2GIp6h3EK;0_aDs09i#cIyhovW8NiiYP3*t^Bq8ZA*XnS!Z_!I$=6fc4oKK zrn)|9Kuvtn`2R-K2h=EvKAHHR7#|1{B_?7_eBwnT_+Vl@ckXOMfqkrL;@o8Jx#!+< z&Yg4iJNNcX0RU4)V=X`f05EzuRTb)P)A%}nZfR0DGn*)qK7a!~V1fs};oTw~O+*oh zA`nF&ia->BC;~Gf0(58d#;V-=Vm0cc2t*P1Uq*nR4>5W;O@_2AXmE5;7nA@*YiT-Y zG^RQr(20dK8Pc+#fhyS))dPmA7?v0))M-7&#fc_ES{78O0}6G(aAyoF6byDJy;vX) zm=rYXqX%+ah`pLQKz zw;Zz&C|HI`B8U1c$8bkeZqYHkKsO^6n9Ss?+Au!ewyr%9Ti?E6A`u(k*w#wpb?p-q zGFud1vuS_!xIOH+r}*pBSrDEXFi-H4{b?Fi@y_;2Y2jT>rsCb@ig)r{MVY7d^$!dl zJd{<{qG#?mZQZv@W{2*ZURGV;k+VDUuCupbmdMGzylWSS9a>qK*X?|fgw3tCov|Jh z()ogG+k0Kl@-5dH==aT&K40U8rY!XjdTzl_2gdp>vM;3S_#S&kxUzS^EOK}**j_({?LH#X`ZWe8kX-Cf@th+(zF3?YO7(G206W~VQHO~(R!JBfpk>MDOm)1`V9p3S-gU` zc(O$dYjG~t<8oYq&A1Bh#Wq}r8?YVI*oED=8wW9u1|G#@Xk!secoN6(aeNA& z##4A2pU0Q+6?_d}$20g2zKieSC-@nDj$h(ecnN>TEBFgu#cOyS|B_^>PFgN$(p^%s zv`T7`R!f_uEz)*rpEM|Cr6J*iR7t$UlRgClX^cqq#0!rV>Fn(juW{S<9Xoe*&Dg~I zaXwGAJL(rLUJ_f;vS$4Q4{x0Wq`+?lvNxtefc_~t6QDmp$j!(VIjJ=EQhJyttEHwo zho>>S$fcX^RvOh=lt6-A*-Y$gN*=+kPBb>E66LI5Th}%!Y7J$i9O!OH5Q`zR@j*pV zYbiIy+GdSd2$@ux%PZK7nO?k}&@aK8w%ci}(`Z{#8Q$8GIAp!ng5#Jcl3Q zdHguYfN$}8yo|rzgz4_7n8rV=W4e?nIJWB?BMF`nb1PrTAp?23R4vMF`eH6_+)Bz! zwLUFejj-Cl>;KN`-~Xp&@5pErfhYnqBLZ04k?Ba$yHq=Sc�y=TUli<8oy|0~P9m ua-3*TjuV~yhart)B+7M?AuS6^Gt~a`4*}Euhj(=UNB95KQh6rc|NjEJtftHW literal 0 HcmV?d00001 diff --git a/projects/README.md b/projects/README.md new file mode 100644 index 0000000..4ee9b0b --- /dev/null +++ b/projects/README.md @@ -0,0 +1,4 @@ +# All projects go in this folder +# Projects created by create_project.sh + +Each project is a complete ReiLua-Enhanced setup ready to build. diff --git a/remove_this.png b/remove_this.png deleted file mode 100644 index b7a9f187f9547d7b71363aa94f8a5166929eb254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9696 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 QDG+m03zO&HUH$QY07)1c!~g&Q diff --git a/scripts/.DS_Store b/scripts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a08bf1543e601f91f451d934759a2f83ae3cc8b9 GIT binary patch literal 8196 zcmeHMU2GIp6u#fIzzh>$s09i#c58)VS;JBaSW#HEZRDrrZ(I7qPo3Qv=!EG^*_qu^ zn`(X1P&M&IZ1rm5x71AJbh-dA!e{F^UCV?vzcMX_Jc&?0;Gz{S+nQJb7WOMlpgd((t#1= z{gjbAz-L{a=VVG_BeUPOMh3L%R?iI#+qH6`fo)o(aZRSN^FeBnp>L3_VEXN4!g4JdOmOr2^@X5jLS%o6m(<>~>b|Cp4<_5UckVsEKwDU)R;!D93bt=&9IJc8 zHiN-F!_Qi-X}d@JDW+~!VoJGA5tBrbG(G0oECzr(*Yt*%h<||#t z=)nuqW_5$CnM$`~WGqLBTGUOlwo~aT2#Dy$v-ybw`*6tCaUCE+Dmcz$La&FRY+JTn~qp_<_*ZcTZTTRn4$?0V^ zORMy>-YskA$VRi>f=xuHXCU}4*O!=9pKKJv`cLeMa1_S4KA8~WY5`L{KiqVdU@5kP z9cII9lufed+3W0mc7}bxK4;&u3+zYsEBlT8&aSYl>@QSeE~>E{E6{*dxED=WhxOQi zR&<~fyU>p;OdP>cILM=b6Bxx~coI+HBqs43Uc$?G6|dnG-o`t47a!wOe1kQ(xC7`Dka;YDWAfDG)i#I z>w}W5`1wydedA=SeR$jU9XmU2+GP7-K2NVZsuwL@5?j%@ruqJdwoZ{yaJEF#Yv~^{ zzAR5d#)qt!&Q_6!YHc^Agmq%3bkyeX)RoV3?Yg_wT5T33jhL=%py_N%7%^QPudUT2 z%2P2-tgThG3d%wyv|S&kDTn{}G9;w05d+wkm?|0|w<&Cap!*(G+F zc>XskAY%z)Scy3CdNY#5?KZR%xA$Nl(&)k=48TB!nC`&EFpeXKF^uDJOyCLP`O|m? z&*BBVNL+t~*nSFc;7z=R_izRu;w(N2S^o{b!$tfujmMqkJjNg8JT9bjuH(5!Nm^ol zxxpJ sSdJ5h/dev/null; then + MISSING_DEPS+=("glfw") + fi + + if ! brew list raylib &>/dev/null; then + MISSING_DEPS+=("raylib") + fi + + if ! brew list lua &>/dev/null; then + MISSING_DEPS+=("lua") + fi + + if [ ${#MISSING_DEPS[@]} -gt 0 ]; then + echo "ERROR: Missing Homebrew packages: ${MISSING_DEPS[*]}" + echo "" + echo "Install with:" + echo " brew install ${MISSING_DEPS[*]} pkg-config" + echo "" + exit 1 + fi + + echo "✓ Homebrew dependencies found" + echo "" + fi +fi + # Create and navigate to build directory mkdir -p build cd build || exit 1 @@ -60,9 +107,24 @@ if [ "$1" == "clean" ]; then echo "" fi -# Configure with MinGW -echo "Configuring CMake for development..." -cmake -G "MinGW Makefiles" .. +# Detect platform and set appropriate generator +if [[ "$OSTYPE" == "darwin"* ]]; then + # macOS + CMAKE_GENERATOR="Unix Makefiles" + BUILD_CMD="make" +elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "mingw"* ]]; then + # Windows with MinGW + CMAKE_GENERATOR="MinGW Makefiles" + BUILD_CMD="make" +else + # Linux and others + CMAKE_GENERATOR="Unix Makefiles" + BUILD_CMD="make" +fi + +# Configure +echo "Configuring CMake for development (${OSTYPE})..." +cmake -G "$CMAKE_GENERATOR" .. if [ $? -ne 0 ]; then echo "" @@ -72,7 +134,7 @@ fi echo "" echo "Building ReiLua..." -make +$BUILD_CMD if [ $? -ne 0 ]; then echo "" @@ -87,12 +149,20 @@ echo "================================" echo "" echo "Development build created successfully!" echo "" + +# Detect executable name based on platform +if [[ "$OSTYPE" == "darwin"* ]]; then + EXE_NAME="ReiLua" +else + EXE_NAME="ReiLua.exe" +fi + echo "To run your game:" echo " cd /path/to/your/game" -echo " /path/to/ReiLua/build/ReiLua.exe" +echo " /path/to/ReiLua/build/$EXE_NAME" echo "" echo "To run with console logging:" -echo " /path/to/ReiLua/build/ReiLua.exe --log" +echo " /path/to/ReiLua/build/$EXE_NAME --log" echo "" echo "Features:" echo " - Lua files load from file system" diff --git a/scripts/build_release.sh b/scripts/build_release.sh old mode 100644 new mode 100755 index cccdefe..41a050c --- a/scripts/build_release.sh +++ b/scripts/build_release.sh @@ -1,6 +1,6 @@ #!/bin/bash # ReiLua Release Build Script -# Run this from w64devkit shell +# Works on Windows (w64devkit) and macOS echo "================================" echo "ReiLua - Release Build" @@ -17,6 +17,53 @@ if [ ! -f "CMakeLists.txt" ]; then exit 1 fi +# Check for dependencies on macOS +if [[ "$OSTYPE" == "darwin"* ]]; then + echo "Checking macOS build configuration..." + + # Check if static libraries exist + if [ -f "../lib/macos/libraylib.a" ] && [ -f "../lib/macos/liblua.a" ]; then + echo "✓ Static libraries found - building for distribution" + echo " (Single-file executable, no dependencies)" + echo "" + else + echo "⚠️ Static libraries not found - using Homebrew libraries" + echo "" + echo "This build will require raylib/lua at runtime." + echo "" + echo "For distribution builds (single executable), run:" + echo " ./scripts/macos/build_static_libs.sh" + echo "" + + # Check for Homebrew dependencies + MISSING_DEPS=() + + if ! brew list glfw &>/dev/null; then + MISSING_DEPS+=("glfw") + fi + + if ! brew list raylib &>/dev/null; then + MISSING_DEPS+=("raylib") + fi + + if ! brew list lua &>/dev/null; then + MISSING_DEPS+=("lua") + fi + + if [ ${#MISSING_DEPS[@]} -gt 0 ]; then + echo "ERROR: Missing Homebrew packages: ${MISSING_DEPS[*]}" + echo "" + echo "Install with:" + echo " brew install ${MISSING_DEPS[*]} pkg-config" + echo "" + exit 1 + fi + + echo "✓ Homebrew dependencies found" + echo "" + fi +fi + # Create and navigate to build directory mkdir -p build cd build || exit 1 @@ -88,10 +135,25 @@ echo "" echo "Cleaning CMake cache..." rm -rf CMakeCache.txt CMakeFiles/ +# Detect platform and set appropriate generator +if [[ "$OSTYPE" == "darwin"* ]]; then + # macOS + CMAKE_GENERATOR="Unix Makefiles" + BUILD_CMD="make" +elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "mingw"* ]]; then + # Windows with MinGW + CMAKE_GENERATOR="MinGW Makefiles" + BUILD_CMD="make" +else + # Linux and others + CMAKE_GENERATOR="Unix Makefiles" + BUILD_CMD="make" +fi + # 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 +echo "Configuring CMake for release (${OSTYPE})..." +cmake -G "$CMAKE_GENERATOR" .. -DEMBED_MAIN=ON -DEMBED_ASSETS=$EMBED_ASSETS -DCMAKE_BUILD_TYPE=Release if [ $? -ne 0 ]; then echo "" @@ -102,7 +164,7 @@ fi # Build echo "" echo "Building ReiLua Release..." -make +$BUILD_CMD if [ $? -ne 0 ]; then echo "" @@ -137,19 +199,27 @@ echo "" echo "================================" echo "Build Complete!" echo "================================" -EXESIZE=$(du -h ReiLua.exe | cut -f1) + +# Detect executable name based on platform +if [[ "$OSTYPE" == "darwin"* ]]; then + EXE_NAME="ReiLua" +else + EXE_NAME="ReiLua.exe" +fi + +EXESIZE=$(du -h "$EXE_NAME" | cut -f1) echo "" -echo "Executable: ReiLua.exe ($EXESIZE)" -echo "Location: $(pwd)/ReiLua.exe" +echo "Executable: $EXE_NAME ($EXESIZE)" +echo "Location: $(pwd)/$EXE_NAME" 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 " ./$EXE_NAME --log (with console)" +echo " ./$EXE_NAME (production mode)" echo "" echo "To distribute:" -echo " - Copy ReiLua.exe to your distribution folder" +echo " - Copy $EXE_NAME to your distribution folder" echo " - Rename it to your game name (optional)" echo " - That's it! Single file distribution!" echo "" diff --git a/scripts/create_project.sh b/scripts/create_project.sh new file mode 100755 index 0000000..e6a2173 --- /dev/null +++ b/scripts/create_project.sh @@ -0,0 +1,578 @@ +#!/bin/bash +# ReiLua-Enhanced Project Setup Script +# Creates a new game project with custom metadata + +set -e + +echo "╔════════════════════════════════════════════════════════════════════╗" +echo "║ ║" +echo "║ ReiLua-Enhanced - Project Setup Wizard ║" +echo "║ ║" +echo "╚════════════════════════════════════════════════════════════════════╝" +echo "" + +# Get script directory (ReiLua-Enhanced root) +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +# Function to validate alphanumeric input +validate_alphanumeric() { + if [[ ! "$1" =~ ^[a-zA-Z0-9]+$ ]]; then + return 1 + fi + return 0 +} + +# Get project information +echo "Please provide your project information:" +echo "==========================================" +echo "" + +# Project Name +while true; do + read -p "Project Name (alphanumeric only, e.g., MyAwesomeGame): " PROJECT_NAME + if validate_alphanumeric "$PROJECT_NAME"; then + break + else + echo "❌ Invalid! Use only letters and numbers (no spaces or symbols)." + fi +done + +# Executable Name +read -p "Executable Name (default: $PROJECT_NAME): " EXECUTABLE_NAME +EXECUTABLE_NAME=${EXECUTABLE_NAME:-$PROJECT_NAME} + +# Author Name +read -p "Author Name: " AUTHOR_NAME +if [ -z "$AUTHOR_NAME" ]; then + AUTHOR_NAME="Unknown Author" +fi + +# Author Email +read -p "Author Email: " AUTHOR_EMAIL +if [ -z "$AUTHOR_EMAIL" ]; then + AUTHOR_EMAIL="author@example.com" +fi + +# Description +read -p "Project Description: " DESCRIPTION +if [ -z "$DESCRIPTION" ]; then + DESCRIPTION="A game made with ReiLua" +fi + +# Company/Organization (for bundle identifier) +read -p "Company/Organization (for bundle ID, default: reilua): " COMPANY +COMPANY=${COMPANY:-reilua} + +# Convert to lowercase and remove spaces for bundle ID +BUNDLE_ID=$(echo "${COMPANY}.${PROJECT_NAME}" | tr '[:upper:]' '[:lower:]' | tr -d ' ') + +# Version +read -p "Version (default: 1.0.0): " VERSION +VERSION=${VERSION:-1.0.0} + +echo "" +echo "==========================================" +echo "Project Summary:" +echo "==========================================" +echo "Project Name: $PROJECT_NAME" +echo "Executable: $EXECUTABLE_NAME" +echo "Author: $AUTHOR_NAME" +echo "Email: $AUTHOR_EMAIL" +echo "Description: $DESCRIPTION" +echo "Bundle ID: $BUNDLE_ID" +echo "Version: $VERSION" +echo "==========================================" +echo "" + +read -p "Create project with these settings? (Y/n): " -n 1 -r +echo "" +if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ ! -z $REPLY ]]; then + echo "Setup cancelled." + exit 0 +fi + +# Create project directory +PROJECTS_ROOT="$SCRIPT_DIR/../projects" +mkdir -p "$PROJECTS_ROOT" + +PROJECT_DIR="$PROJECTS_ROOT/${PROJECT_NAME}" + +if [ -d "$PROJECT_DIR" ]; then + echo "" + echo "❌ ERROR: Directory 'projects/$PROJECT_NAME' already exists!" + read -p "Delete it and continue? (y/N): " -n 1 -r + echo "" + if [[ $REPLY =~ ^[Yy]$ ]]; then + rm -rf "$PROJECT_DIR" + else + echo "Setup cancelled." + exit 1 + fi +fi + +echo "" +echo "Creating project directory: projects/$PROJECT_NAME" +mkdir -p "$PROJECT_DIR" + +# Copy ReiLua structure +echo "Copying ReiLua-Enhanced files..." + +# Create directory structure first +mkdir -p "$PROJECT_DIR"/{src,include,lib,scripts/macos,fonts,logo,cmake} + +# Copy files using find to preserve structure, excluding unnecessary files +(cd "$SCRIPT_DIR/.." && \ + find . -type f \ + ! -path './build/*' \ + ! -path './deps/*' \ + ! -path './.git/*' \ + ! -path './projects/*' \ + ! -path './docs/*' \ + ! -path './docs_md/*' \ + ! -path './examples/*' \ + ! -path './template/*' \ + ! -path './tools/*' \ + ! -name '*.app' \ + ! -name '*.dmg' \ + ! -name '*.zip' \ + ! -name '*.o' \ + ! -name '*.md' \ + ! -name 'changelog' \ + ! -name 'devnotes' \ + ! -name '*.png' \ + ! -name 'LICENSE' \ + ! -name 'zed.sample.settings.json' \ + ! -name 'create_project.sh' \ + -exec sh -c 'mkdir -p "$0/$(dirname "{}")" && cp "{}" "$0/{}"' "$PROJECT_DIR" \;) + +echo "✓ Files copied (essentials only: src, lib, scripts, assets)" +echo "" +echo "Setting up project files..." + +# Get absolute paths for lua and raylib (sibling to ReiLua-Enhanced) +LUA_PATH="$(cd "$SCRIPT_DIR/.." && pwd)/lua" +RAYLIB_PATH="$(cd "$SCRIPT_DIR/.." && pwd)/raylib" + +# Update build_static_libs.sh with correct paths +if [ -f "$PROJECT_DIR/scripts/macos/build_static_libs.sh" ]; then + cat > "$PROJECT_DIR/scripts/macos/build_static_libs.sh" << 'EOFSCRIPT' +#!/bin/bash +# Build static raylib and lua libraries for macOS + +set -e + +echo "========================================" +echo "Building Static Libraries for macOS" +echo "========================================" +echo "" + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_ROOT="$SCRIPT_DIR/../.." +cd "$PROJECT_ROOT" + +# Look for lua and raylib as siblings to this project +LUA_SRC="$(cd "$PROJECT_ROOT/.." && pwd)/lua" +RAYLIB_SRC="$(cd "$PROJECT_ROOT/.." && pwd)/raylib" + +if [ ! -d "$LUA_SRC" ]; then + echo "ERROR: Lua source not found at: $LUA_SRC" + echo "" + echo "Expected: ../lua relative to project" + exit 1 +fi + +if [ ! -d "$RAYLIB_SRC" ]; then + echo "ERROR: Raylib source not found at: $RAYLIB_SRC" + echo "" + echo "Expected: ../raylib relative to project" + exit 1 +fi + +echo "Using sources:" +echo " Lua: $LUA_SRC" +echo " Raylib: $RAYLIB_SRC" +echo "" + +mkdir -p "$PROJECT_ROOT/lib/macos" + +# Build Lua +echo "========================================" +echo "Building Lua 5.4 (static)" +echo "========================================" +cd "$LUA_SRC" +make clean || true + +CFLAGS="-O2 -Wall -DLUA_USE_MACOSX -DLUA_USE_DLOPEN" +OBJS="" +for file in lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes lparser lstate lstring ltable ltm lundump lvm lzio lauxlib lbaselib ldblib liolib lmathlib loslib ltablib lstrlib lutf8lib loadlib lcorolib linit; do + cc $CFLAGS -c ${file}.c -o ${file}.o + OBJS="$OBJS ${file}.o" +done +ar rcs liblua.a $OBJS +cp liblua.a "$PROJECT_ROOT/lib/macos/" +LUASIZE=$(du -h "$PROJECT_ROOT/lib/macos/liblua.a" | cut -f1) +echo "✓ Lua: $LUASIZE" + +# Build Raylib +echo "" +echo "========================================" +echo "Building Raylib 5.5 (static)" +echo "========================================" +cd "$RAYLIB_SRC" +rm -rf build_static +mkdir -p build_static && cd build_static +cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DUSE_EXTERNAL_GLFW=OFF -DCUSTOMIZE_BUILD=ON +make -j$(sysctl -n hw.ncpu) +cp raylib/libraylib.a "$PROJECT_ROOT/lib/macos/" +RAYLIBSIZE=$(du -h "$PROJECT_ROOT/lib/macos/libraylib.a" | cut -f1) +echo "✓ Raylib: $RAYLIBSIZE" + +echo "" +echo "Static libraries ready in lib/macos/" +EOFSCRIPT + chmod +x "$PROJECT_DIR/scripts/macos/build_static_libs.sh" +fi + +# Create custom resources.rc for Windows +cat > "$PROJECT_DIR/resources.rc" << EOFRC +IDI_ICON1 ICON "icon.ico" + +1 VERSIONINFO +FILEVERSION ${VERSION//./,},0 +PRODUCTVERSION ${VERSION//./,},0 +FILEFLAGSMASK 0x3fL +FILEFLAGS 0x0L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "$AUTHOR_NAME" + VALUE "FileDescription", "$DESCRIPTION" + VALUE "FileVersion", "$VERSION" + VALUE "InternalName", "$EXECUTABLE_NAME" + VALUE "LegalCopyright", "Copyright (C) $AUTHOR_NAME, $(date +%Y)" + VALUE "OriginalFilename", "${EXECUTABLE_NAME}.exe" + VALUE "ProductName", "$PROJECT_NAME" + VALUE "ProductVersion", "$VERSION" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END +EOFRC + +# Create updated create_app_bundle.sh for macOS +cat > "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" << 'EOFBUNDLE' +#!/bin/bash +# Create macOS App Bundle with Icon and Metadata + +set -e + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_ROOT="$SCRIPT_DIR/../.." +cd "$PROJECT_ROOT" + +# Read project metadata +PROJECT_NAME="__PROJECT_NAME__" +EXECUTABLE_NAME="__EXECUTABLE_NAME__" +BUNDLE_ID="__BUNDLE_ID__" +VERSION="__VERSION__" +AUTHOR_NAME="__AUTHOR_NAME__" +DESCRIPTION="__DESCRIPTION__" + +if [ ! -f "build/ReiLua" ]; then + echo "ERROR: ReiLua executable not found! Build first." + exit 1 +fi + +APP_NAME="${1:-$EXECUTABLE_NAME}" +APP_BUNDLE="${APP_NAME}.app" + +echo "Creating $APP_BUNDLE..." +mkdir -p "$APP_BUNDLE/Contents/MacOS" +mkdir -p "$APP_BUNDLE/Contents/Resources" + +cp build/ReiLua "$APP_BUNDLE/Contents/MacOS/$APP_NAME" +chmod +x "$APP_BUNDLE/Contents/MacOS/$APP_NAME" + +# Convert icon +ICNS_FILE="$APP_BUNDLE/Contents/Resources/icon.icns" +if [ -f "icon.ico" ]; then + mkdir -p icon.iconset + sips -s format png icon.ico --out icon.iconset/icon_512x512.png -z 512 512 2>/dev/null || true + if [ -f "icon.iconset/icon_512x512.png" ]; then + sips -z 256 256 icon.iconset/icon_512x512.png --out icon.iconset/icon_256x256.png + sips -z 128 128 icon.iconset/icon_512x512.png --out icon.iconset/icon_128x128.png + sips -z 64 64 icon.iconset/icon_512x512.png --out icon.iconset/icon_64x64.png + sips -z 32 32 icon.iconset/icon_512x512.png --out icon.iconset/icon_32x32.png + sips -z 16 16 icon.iconset/icon_512x512.png --out icon.iconset/icon_16x16.png + cp icon.iconset/icon_512x512.png icon.iconset/icon_256x256@2x.png + cp icon.iconset/icon_256x256.png icon.iconset/icon_128x128@2x.png + cp icon.iconset/icon_128x128.png icon.iconset/icon_64x64@2x.png + cp icon.iconset/icon_64x64.png icon.iconset/icon_32x32@2x.png + cp icon.iconset/icon_32x32.png icon.iconset/icon_16x16@2x.png + iconutil -c icns icon.iconset -o "$ICNS_FILE" + fi + rm -rf icon.iconset +fi + +# Create Info.plist with project metadata +cat > "$APP_BUNDLE/Contents/Info.plist" << EOF + + + + + CFBundleExecutable + $APP_NAME + CFBundleIconFile + icon.icns + CFBundleIdentifier + $BUNDLE_ID + CFBundleName + $PROJECT_NAME + CFBundleDisplayName + $PROJECT_NAME + CFBundlePackageType + APPL + CFBundleShortVersionString + $VERSION + CFBundleVersion + $VERSION + NSHumanReadableCopyright + Copyright © $(date +%Y) $AUTHOR_NAME. All rights reserved. + LSMinimumSystemVersion + 10.12 + NSHighResolutionCapable + + + +EOF + +echo "✓ $APP_BUNDLE created!" +echo " open $APP_BUNDLE" +EOFBUNDLE + +# Replace placeholders in create_app_bundle.sh +if [ -f "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" ]; then + # Cross-platform sed: detect OS and use appropriate syntax + if [[ "$OSTYPE" == "darwin"* ]]; then + # macOS requires empty string after -i + SED_INPLACE="sed -i ''" + else + # Linux/Windows Git Bash + SED_INPLACE="sed -i" + fi + + $SED_INPLACE "s/__PROJECT_NAME__/$PROJECT_NAME/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + $SED_INPLACE "s/__EXECUTABLE_NAME__/$EXECUTABLE_NAME/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + $SED_INPLACE "s/__BUNDLE_ID__/$BUNDLE_ID/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + $SED_INPLACE "s/__VERSION__/$VERSION/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + $SED_INPLACE "s/__AUTHOR_NAME__/$AUTHOR_NAME/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + $SED_INPLACE "s/__DESCRIPTION__/$DESCRIPTION/g" "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" + chmod +x "$PROJECT_DIR/scripts/macos/create_app_bundle.sh" +fi + +# Create project metadata file +cat > "$PROJECT_DIR/project.info" << EOFINFO +# Project Information +PROJECT_NAME=$PROJECT_NAME +EXECUTABLE_NAME=$EXECUTABLE_NAME +AUTHOR_NAME=$AUTHOR_NAME +AUTHOR_EMAIL=$AUTHOR_EMAIL +DESCRIPTION=$DESCRIPTION +BUNDLE_ID=$BUNDLE_ID +VERSION=$VERSION +COMPANY=$COMPANY +CREATED=$(date +%Y-%m-%d) +EOFINFO + +# Create README for the project +cat > "$PROJECT_DIR/README.md" << EOFREADME +# $PROJECT_NAME + +$DESCRIPTION + +## Project Information + +- **Author:** $AUTHOR_NAME <$AUTHOR_EMAIL> +- **Version:** $VERSION +- **Created:** $(date +%Y-%m-%d) +- **Built with:** ReiLua-Enhanced + +## Building + +### Development Build +\`\`\`bash +./scripts/build_dev.sh +\`\`\` + +### Release Build +\`\`\`bash +# Copy your Lua files and assets +mkdir -p build +cp *.lua build/ +cp -r assets build/ + +# Build +./scripts/build_release.sh +\`\`\` + +### macOS App Bundle +\`\`\`bash +./scripts/macos/create_app_bundle.sh +\`\`\` + +## Project Structure + +\`\`\` +$PROJECT_NAME/ +├── main.lua # Your game entry point +├── assets/ # Game assets (images, sounds, etc.) +├── build/ # Build output directory +├── scripts/ # Build scripts +│ ├── build_dev.sh +│ ├── build_release.sh +│ └── macos/ +│ ├── build_static_libs.sh +│ └── create_app_bundle.sh +├── src/ # ReiLua C source +├── include/ # Headers +└── lib/ # Static libraries +\`\`\` + +## Game Development + +Edit \`main.lua\` and add your game code: + +\`\`\`lua +function init() + -- Initialize your game +end + +function update(dt) + -- Update game logic +end + +function draw() + -- Draw your game +end +\`\`\` + +## Distribution + +### Windows +\`\`\`bash +# After build_release.sh +# The executable is: build/${EXECUTABLE_NAME}.exe +\`\`\` + +### macOS +\`\`\`bash +# Create app bundle +./scripts/macos/create_app_bundle.sh + +# Create DMG for distribution +hdiutil create -volname '$PROJECT_NAME' \\ + -srcfolder '${EXECUTABLE_NAME}.app' \\ + -ov -format UDZO ${EXECUTABLE_NAME}.dmg +\`\`\` + +### Linux +\`\`\`bash +# After build_release.sh +# The executable is: build/ReiLua (rename to ${EXECUTABLE_NAME}) +\`\`\` + +## License + +Add your license information here. + +--- + +Built with [ReiLua-Enhanced](https://github.com/nullstare/ReiLua) +EOFREADME + +# Create example main.lua +cat > "$PROJECT_DIR/main.lua" << EOFLUA +-- $PROJECT_NAME +-- $DESCRIPTION +-- Author: $AUTHOR_NAME + +function init() + print("$PROJECT_NAME initialized!") + print("Version: $VERSION") + print("Author: $AUTHOR_NAME") + + -- Initialize your game here +end + +function update(dt) + -- Update game logic here + -- dt = delta time in seconds +end + +function draw() + -- Draw your game here + RL.clearBackground(RL.RAYWHITE) + + RL.drawText("$PROJECT_NAME", 10, 10, 40, RL.BLACK) + RL.drawText("Press ESC to exit", 10, 60, 20, RL.DARKGRAY) + + if RL.isKeyPressed(RL.KEY_ESCAPE) then + RL.closeWindow() + end +end +EOFLUA + +# Create assets directory +mkdir -p "$PROJECT_DIR/assets" +cat > "$PROJECT_DIR/assets/.gitkeep" << EOFKEEP +# Place your game assets here: +# - Images (.png, .jpg) +# - Sounds (.wav, .ogg, .mp3) +# - Fonts (.ttf) +# - Other resources +EOFKEEP + +echo "" +echo "╔════════════════════════════════════════════════════════════════════╗" +echo "║ ║" +echo "║ ✅ Project Setup Complete! ✅ ║" +echo "║ ║" +echo "╚════════════════════════════════════════════════════════════════════╝" +echo "" +echo "Project Details:" +echo " Name: $PROJECT_NAME" +echo " Location: projects/$PROJECT_NAME" +echo " Executable: $EXECUTABLE_NAME" +echo " Author: $AUTHOR_NAME" +echo "" +echo "Next Steps:" +echo " 1. cd projects/$PROJECT_NAME" +echo " 2. Edit main.lua (your game code)" +echo " 3. Add assets to assets/ folder" +echo " 4. Build: ./scripts/build_dev.sh" +echo " 5. Run: ./build/ReiLua" +echo "" +echo "Files Created:" +echo " ✓ main.lua - Game entry point" +echo " ✓ project.info - Project metadata" +echo " ✓ README.md - Project documentation" +echo " ✓ resources.rc - Windows metadata (embedded in .exe)" +echo " ✓ scripts/macos/create_app_bundle.sh - macOS bundle with metadata" +echo " ✓ assets/ - Asset directory" +echo "" +echo "Build Scripts Updated:" +echo " ✓ Lua path: ../lua (sibling directory)" +echo " ✓ Raylib path: ../raylib (sibling directory)" +echo "" +echo "All projects are in: projects/ folder" +echo "Happy game development! 🎮" +echo "" diff --git a/scripts/macos/build_static_libs.sh b/scripts/macos/build_static_libs.sh new file mode 100755 index 0000000..90f82a8 --- /dev/null +++ b/scripts/macos/build_static_libs.sh @@ -0,0 +1,149 @@ +#!/bin/bash +# Build static raylib and lua libraries for macOS +# This creates static libraries that can be linked into ReiLua for distribution + +set -e # Exit on error + +echo "========================================" +echo "Building Static Libraries for macOS" +echo "========================================" +echo "" + +# Get script directory +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_ROOT="$SCRIPT_DIR/../.." +cd "$PROJECT_ROOT" + +# Use source directories relative to project root (one level up, then into folders) +LUA_SRC="$(cd "$PROJECT_ROOT/.." && pwd)/lua" +RAYLIB_SRC="$(cd "$PROJECT_ROOT/.." && pwd)/raylib" + +# Check for required tools +if ! command -v cmake &> /dev/null; then + echo "ERROR: cmake is required but not installed." + echo "Install with: brew install cmake" + exit 1 +fi + +# Check that source directories exist +if [ ! -d "$LUA_SRC" ]; then + echo "ERROR: Lua source not found at: $LUA_SRC" + echo "" + echo "Expected directory structure:" + echo " /path/to/tools/" + echo " ├── ReiLua-Enhanced/ (this project)" + echo " ├── lua/ (Lua source)" + echo " └── raylib/ (Raylib source)" + echo "" + exit 1 +fi + +if [ ! -d "$RAYLIB_SRC" ]; then + echo "ERROR: Raylib source not found at: $RAYLIB_SRC" + echo "" + echo "Expected directory structure:" + echo " /path/to/tools/" + echo " ├── ReiLua-Enhanced/ (this project)" + echo " ├── lua/ (Lua source)" + echo " └── raylib/ (Raylib source)" + echo "" + exit 1 +fi + +echo "Using existing sources:" +echo " Lua: $LUA_SRC" +echo " Raylib: $RAYLIB_SRC" +echo "" + +# Create lib/macos directory +mkdir -p "$PROJECT_ROOT/lib/macos" + +# Build Lua +echo "========================================" +echo "Building Lua 5.4 (static)" +echo "========================================" +echo "" + +cd "$LUA_SRC" +echo "Compiling Lua..." + +# Clean previous build +make clean || true + +# Compile Lua core files +CFLAGS="-O2 -Wall -DLUA_USE_MACOSX -DLUA_USE_DLOPEN" +OBJS="" + +for file in lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes lparser lstate lstring ltable ltm lundump lvm lzio lauxlib lbaselib ldblib liolib lmathlib loslib ltablib lstrlib lutf8lib loadlib lcorolib linit; do + echo " Compiling ${file}.c..." + cc $CFLAGS -c ${file}.c -o ${file}.o + OBJS="$OBJS ${file}.o" +done + +# Create static library +echo "Creating static library..." +ar rcs liblua.a $OBJS + +# Copy to lib directory +echo "Installing Lua static library..." +cp liblua.a "$PROJECT_ROOT/lib/macos/" +LUASIZE=$(du -h "$PROJECT_ROOT/lib/macos/liblua.a" | cut -f1) +echo "✓ Lua static library: lib/macos/liblua.a ($LUASIZE)" +echo "" + +# Build Raylib +echo "========================================" +echo "Building Raylib 5.5 (static)" +echo "========================================" +echo "" + +cd "$RAYLIB_SRC" +rm -rf build_static +mkdir -p build_static +cd build_static + +echo "Configuring Raylib..." +cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DUSE_EXTERNAL_GLFW=OFF \ + -DCUSTOMIZE_BUILD=ON + +echo "Compiling Raylib..." +make -j$(sysctl -n hw.ncpu) + +# Copy to lib directory +echo "Installing Raylib static library..." +cp raylib/libraylib.a "$PROJECT_ROOT/lib/macos/" +RAYLIBSIZE=$(du -h "$PROJECT_ROOT/lib/macos/libraylib.a" | cut -f1) +echo "✓ Raylib static library: lib/macos/libraylib.a ($RAYLIBSIZE)" +echo "" + +cd "$PROJECT_ROOT" + +# Verify libraries +echo "========================================" +echo "Verification" +echo "========================================" +echo "" +ls -lh lib/macos/*.a +echo "" +file lib/macos/liblua.a +file lib/macos/libraylib.a +echo "" + +echo "========================================" +echo "Success! Static libraries built." +echo "========================================" +echo "" +echo "Libraries created in: lib/macos/" +echo " - liblua.a ($LUASIZE)" +echo " - libraylib.a ($RAYLIBSIZE)" +echo "" +echo "You can now build ReiLua with static linking." +echo "Run: ./scripts/build_dev.sh" +echo "" +echo "This will create a single-file executable that" +echo "doesn't require users to install raylib or lua!" +echo "" diff --git a/scripts/macos/create_app_bundle.sh b/scripts/macos/create_app_bundle.sh new file mode 100755 index 0000000..ec3f316 --- /dev/null +++ b/scripts/macos/create_app_bundle.sh @@ -0,0 +1,152 @@ +#!/bin/bash +# Create macOS App Bundle with Icon +# This creates a proper .app bundle for distribution on macOS + +set -e + +echo "========================================" +echo "Creating macOS App Bundle" +echo "========================================" +echo "" + +# Get script directory +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_ROOT="$SCRIPT_DIR/../.." +cd "$PROJECT_ROOT" + +# Check if executable exists +if [ ! -f "build/ReiLua" ]; then + echo "ERROR: ReiLua executable not found!" + echo "Please run ./scripts/build_dev.sh or ./scripts/build_release.sh first" + exit 1 +fi + +# App name (can be customized) +APP_NAME="${1:-ReiLua}" +APP_BUNDLE="${APP_NAME}.app" + +echo "Creating app bundle: $APP_BUNDLE" +echo "" + +# Create app bundle structure +mkdir -p "$APP_BUNDLE/Contents/MacOS" +mkdir -p "$APP_BUNDLE/Contents/Resources" + +# Copy executable +echo "Copying executable..." +cp build/ReiLua "$APP_BUNDLE/Contents/MacOS/$APP_NAME" +chmod +x "$APP_BUNDLE/Contents/MacOS/$APP_NAME" + +# Convert icon.ico to .icns if needed +ICNS_FILE="$APP_BUNDLE/Contents/Resources/icon.icns" + +if [ -f "icon.ico" ]; then + echo "Converting icon..." + + # Create temporary iconset directory + mkdir -p icon.iconset + + # Use sips to convert and resize (macOS built-in tool) + # Extract from .ico and create different sizes + sips -s format png icon.ico --out icon.iconset/icon_512x512.png -z 512 512 2>/dev/null || { + echo "Note: sips conversion had warnings, using ImageMagick if available..." + if command -v convert &> /dev/null; then + convert icon.ico -resize 512x512 icon.iconset/icon_512x512.png + else + echo "WARNING: Could not convert icon. Install ImageMagick with: brew install imagemagick" + echo " Or provide an icon.png file at 512x512 resolution" + fi + } + + # Create other required sizes if we have the 512x512 version + if [ -f "icon.iconset/icon_512x512.png" ]; then + sips -z 256 256 icon.iconset/icon_512x512.png --out icon.iconset/icon_256x256.png + sips -z 128 128 icon.iconset/icon_512x512.png --out icon.iconset/icon_128x128.png + sips -z 64 64 icon.iconset/icon_512x512.png --out icon.iconset/icon_64x64.png + sips -z 32 32 icon.iconset/icon_512x512.png --out icon.iconset/icon_32x32.png + sips -z 16 16 icon.iconset/icon_512x512.png --out icon.iconset/icon_16x16.png + + # Create @2x versions (retina) + cp icon.iconset/icon_512x512.png icon.iconset/icon_256x256@2x.png + cp icon.iconset/icon_256x256.png icon.iconset/icon_128x128@2x.png + cp icon.iconset/icon_128x128.png icon.iconset/icon_64x64@2x.png + cp icon.iconset/icon_64x64.png icon.iconset/icon_32x32@2x.png + cp icon.iconset/icon_32x32.png icon.iconset/icon_16x16@2x.png + + # Convert to .icns + iconutil -c icns icon.iconset -o "$ICNS_FILE" + echo "✓ Icon created: $ICNS_FILE" + fi + + # Clean up + rm -rf icon.iconset +else + echo "WARNING: icon.ico not found, app will have no icon" +fi + +# Create Info.plist +echo "Creating Info.plist..." +cat > "$APP_BUNDLE/Contents/Info.plist" << EOF + + + + + CFBundleExecutable + $APP_NAME + CFBundleIconFile + icon.icns + CFBundleIdentifier + com.reilua.$APP_NAME + CFBundleName + $APP_NAME + CFBundleDisplayName + $APP_NAME + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + 10.12 + NSHighResolutionCapable + + NSSupportsAutomaticGraphicsSwitching + + + +EOF + +echo "✓ Info.plist created" +echo "" + +# Get app size +APP_SIZE=$(du -sh "$APP_BUNDLE" | cut -f1) + +echo "========================================" +echo "App Bundle Created!" +echo "========================================" +echo "" +echo "App: $APP_BUNDLE" +echo "Size: $APP_SIZE" +echo "Location: $(pwd)/$APP_BUNDLE" +echo "" +echo "To test:" +echo " open $APP_BUNDLE" +echo "" +echo "To distribute:" +echo " 1. Zip the .app bundle:" +echo " zip -r ${APP_NAME}.zip $APP_BUNDLE" +echo "" +echo " 2. Or create a DMG (requires hdiutil):" +echo " hdiutil create -volname '$APP_NAME' -srcfolder '$APP_BUNDLE' -ov -format UDZO ${APP_NAME}.dmg" +echo "" +echo "The app bundle includes:" +echo " - Executable: $APP_BUNDLE/Contents/MacOS/$APP_NAME" +if [ -f "$ICNS_FILE" ]; then +echo " - Icon: $APP_BUNDLE/Contents/Resources/icon.icns" +else +echo " - Icon: (not available, provide icon.ico or icon.png)" +fi +echo " - Info.plist with app metadata" +echo "" diff --git a/src/shapes.c b/src/shapes.c index 527632d..9dac22c 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -4,6 +4,9 @@ #include "lua_core.h" #include "textures.h" +// Note: STB rect pack is already included in raylib, so we just declare the types +#include "external/stb_rect_pack.h" + /* ## Shapes - Basic shapes drawing functions */ diff --git a/still_exists.png b/still_exists.png deleted file mode 100644 index 8e030b6c28423d58ec4904746bb7c40bcda6e92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62075 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 diff --git a/why.png b/why.png deleted file mode 100644 index 92294b4a3ce6faecbb7eda000524bd9288ea4e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56718 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