7.0.0 • Published 2 years ago

box2d-wasm v7.0.0

Weekly downloads
52
License
Zlib
Repository
github
Last release
2 years ago

Developing this package

Ensure that you have a recent emscripten installed.

Requires Emscripten 2.0.17 or higher

Overview

Navigate to <repository root>/box2d-wasm, then:

export TARGET_TYPE=Debug
# if you installed emscripten via emsdk: source emsdk_env.sh, then configure tools directory like so:
export EMSCRIPTEN_TOOLS="$(realpath "$(dirname "$(realpath "$(which emcc)")")/tools")"
# if you installed emscripten via brew: configure tools directory like so:
export EMSCRIPTEN_TOOLS="$(realpath "$(dirname "$(realpath "$(which emcc)")")/../libexec/tools")"
export PYTHON3="${EMSDK_PYTHON:-"$(which python3)"}"
./build_all.sh

Step-by-step

If you're prefer not to use build_all.sh, here's each step laid bare.

Navigate to <repository root>/box2d-wasm, then:

mkdir build
cd build

# TARGET_TYPE
#   Debug: fast compilation (for fast iteration when developing locally)
#   Release: optimized for high-performance (longer compile time, for release builds)
#   RelWithDebInfo: Release, but with debug source-maps (and with closure optimizations disabled)
# used for C++ -> LLVM IR, and for LLVM IR -> WASM. Debug
# both provided for your copy-paste convenience
export TARGET_TYPE=RelWithDebInfo
export TARGET_TYPE=Release
export TARGET_TYPE=Debug

# generate Makefiles compatible with emscripten
../build_makefile.sh

# compile C++ to LLVM IR (creates ./bin/libbox2d.a archive)
emmake make

# ensure EMSCRIPTEN_TOOLS environment variable points at the directory in which webidl_binder.py can be found.
# you can determine this based on the location of the `emcc` executable on your PATH.
# if you installed emscripten via emsdk: source emsdk_env.sh, then set the variable like so:
export EMSCRIPTEN_TOOLS="$(realpath "$(dirname "$(realpath "$(which emcc)")")/tools")"
# if you installed emscripten via brew: set the variable like so:
export EMSCRIPTEN_TOOLS="$(realpath "$(dirname "$(realpath "$(which emcc)")")/../libexec/tools")"

# ensure PYTHON3 environment variable points to a Python 3 binary:
export PYTHON3="${EMSDK_PYTHON:-"$(which python3)"}"

# use Box2D.idl to create ./box2d_glue.{js,cpp} for invoking functionality from libbox2d
../build_idl_bindings.sh

# generate Box2D.{wasm,js} from glue code + libbox2d.a
../build_wasm.sh

# generate Box2D.d.ts from Box2D.idl
../build_typings.sh
7.0.0

2 years ago

6.0.3

3 years ago

6.0.4

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

6.0.2

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.1.0

3 years ago

4.0.2

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.0.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago