64 lines
2.5 KiB
Bash
Executable File
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/" |