diff options
| author | Laytan Laats <laytanlaats@hotmail.com> | 2024-08-13 22:15:31 +0200 |
|---|---|---|
| committer | Laytan Laats <laytanlaats@hotmail.com> | 2024-08-13 22:15:31 +0200 |
| commit | d4d46df2fcb10702f1d2eb58cca7c3c4cd5cf937 (patch) | |
| tree | 0a550b3ea69efd54fe119b9cf41cd2aa96e10af8 | |
| parent | 660b6ff0f19f65f3b8082acd80606e3dc1a56f93 (diff) | |
box2d: add build script and MacOS libraries
| -rw-r--r-- | vendor/box2d/box2d.odin | 20 | ||||
| -rwxr-xr-x | vendor/box2d/build_box2d.sh | 72 | ||||
| -rw-r--r-- | vendor/box2d/lib/box2d_darwin_amd64_avx2.a | bin | 0 -> 913288 bytes | |||
| -rw-r--r-- | vendor/box2d/lib/box2d_darwin_amd64_sse2.a | bin | 0 -> 913288 bytes | |||
| -rw-r--r-- | vendor/box2d/lib/box2d_darwin_arm64.a | bin | 0 -> 875336 bytes |
5 files changed, 89 insertions, 3 deletions
diff --git a/vendor/box2d/box2d.odin b/vendor/box2d/box2d.odin index bc2e63c24..2a0b31457 100644 --- a/vendor/box2d/box2d.odin +++ b/vendor/box2d/box2d.odin @@ -3,16 +3,30 @@ package vendor_box2d import "base:intrinsics" import "core:c" +@(private) VECTOR_EXT :: "avx2" when #config(VENDOR_BOX2D_ENABLE_AVX2, intrinsics.has_target_feature("avx2")) else "sse2" + when ODIN_OS == .Windows { - @(private) VECTOR_EXT :: "avx2" when #config(VENDOR_BOX2D_ENABLE_AVX2, intrinsics.has_target_feature("avx2")) else "sse2" - @(private) LIB_PATH :: "lib/box2d_windows_amd64_" + VECTOR_EXT + ".lib" + @(private) LIB_PATH :: "lib/box2d_windows_amd64_" + VECTOR_EXT + ".lib" foreign import lib { LIB_PATH, } } else { + when ODIN_ARCH == .amd64 { + @(private) OS :: "darwin" when ODIN_OS == .Darwin else "other" + @(private) LIB_PATH :: "lib/box2d_" + OS + "_amd64_" + VECTOR_EXT + ".a" + } else when ODIN_OS == .Darwin && ODIN_ARCH == .arm64 { + @(private) LIB_PATH :: "lib/box2d_darwin_arm64.a" + } else { + @(private) LIB_PATH :: "lib/box2d_other.a" + } + + when !#exists(LIB_PATH) { + #panic("Could not find the compiled box2d libraries at \"" + LIB_PATH + "\", they can be compiled by running the `build.sh` script at `" + ODIN_ROOT + "vendor/box2d/build_box2d.sh\"`") + } + foreign import lib { - "box2d", + LIB_PATH, } } diff --git a/vendor/box2d/build_box2d.sh b/vendor/box2d/build_box2d.sh new file mode 100755 index 000000000..4fa64faa0 --- /dev/null +++ b/vendor/box2d/build_box2d.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -eu + +VERSION="3.0.0" +RELEASE="https://github.com/erincatto/box2d/archive/refs/tags/v$VERSION.tar.gz" + +cd "$(odin root)"/vendor/box2d + +curl -O -L "$RELEASE" +tar -xzvf "v$VERSION.tar.gz" + +cd "box2d-$VERSION" + +DISABLE_FLAGS="-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 $DISABLE_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 $DISABLE_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 $DISABLE_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 $DISABLE_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 $DISABLE_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 $DISABLE_FLAGS -DCMAKE_OSX_ARCHITECTURES=arm64 -S . -B build + cmake --build build + cp build/src/libbox2d.a ../lib/box2d_other.a + ;; + esac + ;; +esac + +cd .. + +rm -rf v3.0.0.tar.gz +rm -rf box2d-3.0.0 diff --git a/vendor/box2d/lib/box2d_darwin_amd64_avx2.a b/vendor/box2d/lib/box2d_darwin_amd64_avx2.a Binary files differnew file mode 100644 index 000000000..2e2b72cb1 --- /dev/null +++ b/vendor/box2d/lib/box2d_darwin_amd64_avx2.a diff --git a/vendor/box2d/lib/box2d_darwin_amd64_sse2.a b/vendor/box2d/lib/box2d_darwin_amd64_sse2.a Binary files differnew file mode 100644 index 000000000..cd6cb1ca8 --- /dev/null +++ b/vendor/box2d/lib/box2d_darwin_amd64_sse2.a diff --git a/vendor/box2d/lib/box2d_darwin_arm64.a b/vendor/box2d/lib/box2d_darwin_arm64.a Binary files differnew file mode 100644 index 000000000..5723290b7 --- /dev/null +++ b/vendor/box2d/lib/box2d_darwin_arm64.a |