mirror of
https://github.com/odin-lang/Odin.git
synced 2026-05-31 16:01:13 +00:00
81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eu
|
|
|
|
VERSION="3.1.1"
|
|
RELEASE="https://github.com/erincatto/box2d/archive/refs/tags/v$VERSION.tar.gz"
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
curl -O -L "$RELEASE"
|
|
tar -xzvf "v$VERSION.tar.gz"
|
|
|
|
cd "box2d-$VERSION"
|
|
|
|
FLAGS="-DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=OFF -DBOX2D_VALIDATE=OFF -DBOX2D_UNIT_TESTS=OFF"
|
|
|
|
case "$(uname -s)" in
|
|
Darwin)
|
|
export MACOSX_DEPLOYMENT_TARGET="11"
|
|
|
|
case "$(uname -m)" in
|
|
"x86_64" | "amd64")
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -DBOX2D_AVX2=ON -DCMAKE_OSX_ARCHITECTURES=x86_64 -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_darwin_amd64_avx2.a
|
|
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -DBOX2D_AVX2=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_darwin_amd64_sse2.a
|
|
;;
|
|
*)
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -DCMAKE_OSX_ARCHITECTURES=arm64 -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_darwin_arm64.a
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
case "$(uname -m)" in
|
|
"x86_64" | "amd64")
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -DBOX2D_AVX2=ON -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_other_amd64_avx2.a
|
|
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -DBOX2D_AVX2=OFF -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_other_amd64_sse2.a
|
|
;;
|
|
*)
|
|
rm -rf build
|
|
mkdir build
|
|
cmake $FLAGS -S . -B build
|
|
cmake --build build
|
|
cp build/src/libbox2d.a ../lib/box2d_other.a
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
cd ..
|
|
|
|
set +e
|
|
make -f wasm.Makefile
|
|
if [[ $? -ne 0 ]]; then
|
|
printf "\e[30;43mwarning:\e[0m Native Box2D libraries were built successfully, the WASM build failed, likely because your default C compiler and/or linker doesn't support WASM, you can set the CC and LD environment variables to point to a compiler and linker that support it\n"
|
|
fi
|
|
make -f wasm.Makefile clean
|
|
set -e
|
|
|
|
rm -rf "v$VERSION.tar.gz"
|
|
rm -rf box2d-"$VERSION"
|