Files
WrldBox/build.sh
swim67667 c17dfc94ce
Some checks failed
Build Project / build (ubuntu-latest) (push) Failing after 12m33s
added multi-compiling stuff (only works on my mac for now)
2026-06-28 16:40:20 -04:00

64 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# this is for my mac
set -e
BUILD_DIR="build"
echo "🧹 Cleaning up old builds..."
rm -rf "$BUILD_DIR" .zig-cache
mkdir -p "$BUILD_DIR"
mkdir -p "$BUILD_DIR/Linux(x86_64)"
mkdir -p "$BUILD_DIR/Windows(x86_64)"
mkdir -p "$BUILD_DIR/Windows(ARM64)"
mkdir -p "$BUILD_DIR/MacOS(Silicon)"
mkdir -p "$BUILD_DIR/MacOS(Intel)"
echo "🚀 Starting multi-platform compilation matrix..."
echo "--------------------------------------------------------"
# 🐧 Build Linux binary using native GCC inside an Ubuntu Docker container
echo "📦 Building for Linux (x86_64) via GCC in Docker..."
docker run --rm \
-v "$(pwd)":/src \
-w /src \
ubuntu:22.04 sh -c "
apt-get update && apt-get install -y gcc xorg-dev libgl1-mesa-dev libopenal-dev libcurl4-gnutls-dev
# Include the raylib source files explicitly and fix output name to wrldbox_linux
gcc -O2 -Wall \
src/main.c src/world.c src/player.c src/physics.c src/render.c src/collision.c \
raylib_src/src/rcore.c raylib_src/src/rshapes.c raylib_src/src/rtextures.c \
raylib_src/src/rtext.c raylib_src/src/rmodels.c raylib_src/src/raudio.c raylib_src/src/rglfw.c \
-Iinclude -Iraylib_src/src -Iraylib_src/src/external/glfw/include \
-D_GNU_SOURCE -DPLATFORM_DESKTOP -D_GLFW_X11 \
-lX11 -lGL -lm -lpthread -ldl -lrt \
-o wrldbox_linux
"
mv wrldbox_linux "$BUILD_DIR/Linux(x86_64)/wrldbox_linux_x86_64"
# 🪟 Build Windows binaries natively on your Mac using build.zig
echo "📦 Building for Windows (x86_64)..."
zig build -Dtarget=x86_64-windows -Doptimize=ReleaseFast
mv zig-out/bin/wrldbox.exe "$BUILD_DIR/Windows(x86_64)/wrldbox_win_x86_64.exe"
echo "📦 Building for Windows (ARM64)..."
zig build -Dtarget=aarch64-windows -Doptimize=ReleaseFast
mv zig-out/bin/wrldbox.exe "$BUILD_DIR/Windows(ARM64)/wrldbox_win_arm64.exe"
# 🍏 Build macOS binaries natively on your Mac using build.zig
echo "📦 Building for macOS (Apple Silicon)..."
gcc src/*.c -o wrldboxMacOS \
-I/opt/homebrew/include \
-L/opt/homebrew/lib \
-lraylib \
-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
mv wrldboxMacOS "$BUILD_DIR/MacOS(Silicon)/wrldbox_mac_arm64"
echo "📦 Building for macOS (Intel)..."
zig build -Dtarget=x86_64-macos -Doptimize=ReleaseFast
mv zig-out/bin/wrldbox "$BUILD_DIR/MacOS(Intel)/wrldbox_mac_x86_64"
rm -rf zig-out
echo "--------------------------------------------------------"
echo "✅ Done! All targets generated safely inside /$BUILD_DIR/"