build_box2d.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/env bash
  2. set -eu
  3. VERSION="3.1.0"
  4. RELEASE="https://github.com/erincatto/box2d/archive/refs/tags/v$VERSION.tar.gz"
  5. cd "$(dirname "$0")"
  6. curl -O -L "$RELEASE"
  7. tar -xzvf "v$VERSION.tar.gz"
  8. cd "box2d-$VERSION"
  9. FLAGS="-DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=OFF -DBOX2D_VALIDATE=OFF -DBOX2D_UNIT_TESTS=OFF"
  10. case "$(uname -s)" in
  11. Darwin)
  12. export MACOSX_DEPLOYMENT_TARGET="11"
  13. case "$(uname -m)" in
  14. "x86_64" | "amd64")
  15. rm -rf build
  16. mkdir build
  17. cmake $FLAGS -DBOX2D_AVX2=ON -DCMAKE_OSX_ARCHITECTURES=x86_64 -S . -B build
  18. cmake --build build
  19. cp build/src/libbox2d.a ../lib/box2d_darwin_amd64_avx2.a
  20. rm -rf build
  21. mkdir build
  22. cmake $FLAGS -DBOX2D_AVX2=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -S . -B build
  23. cmake --build build
  24. cp build/src/libbox2d.a ../lib/box2d_darwin_amd64_sse2.a
  25. ;;
  26. *)
  27. rm -rf build
  28. mkdir build
  29. cmake $FLAGS -DCMAKE_OSX_ARCHITECTURES=arm64 -S . -B build
  30. cmake --build build
  31. cp build/src/libbox2d.a ../lib/box2d_darwin_arm64.a
  32. ;;
  33. esac
  34. ;;
  35. *)
  36. case "$(uname -m)" in
  37. "x86_64" | "amd64")
  38. rm -rf build
  39. mkdir build
  40. cmake $FLAGS -DBOX2D_AVX2=ON -S . -B build
  41. cmake --build build
  42. cp build/src/libbox2d.a ../lib/box2d_other_amd64_avx2.a
  43. rm -rf build
  44. mkdir build
  45. cmake $FLAGS -DBOX2D_AVX2=OFF -S . -B build
  46. cmake --build build
  47. cp build/src/libbox2d.a ../lib/box2d_other_amd64_sse2.a
  48. ;;
  49. *)
  50. rm -rf build
  51. mkdir build
  52. cmake $FLAGS -S . -B build
  53. cmake --build build
  54. cp build/src/libbox2d.a ../lib/box2d_other.a
  55. ;;
  56. esac
  57. ;;
  58. esac
  59. cd ..
  60. set +e
  61. make -f wasm.Makefile
  62. if [[ $? -ne 0 ]]; then
  63. 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"
  64. fi
  65. make -f wasm.Makefile clean
  66. set -e
  67. rm -rf "v$VERSION.tar.gz"
  68. rm -rf box2d-"$VERSION"