|
|
|
@ -1,11 +1,23 @@
|
|
|
|
|
# M3/Wasm development notes
|
|
|
|
|
|
|
|
|
|
M3/Wasm project uses CMake. It can also be easily integarted into any build system.
|
|
|
|
|
General build steps look like:
|
|
|
|
|
```sh
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
cmake ..
|
|
|
|
|
make -j8
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
It's recommended to use Clang/Ninja to build the project
|
|
|
|
|
|
|
|
|
|
## Build on Linux
|
|
|
|
|
|
|
|
|
|
### Clang (recommended)
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
cmake -GNinja -DCLANG_SUFFIX="-9" ..
|
|
|
|
|
ninja
|
|
|
|
|
```
|
|
|
|
@ -21,13 +33,15 @@ ninja
|
|
|
|
|
|
|
|
|
|
You may need to install:
|
|
|
|
|
- [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019)
|
|
|
|
|
- [CMake](https://cmake.org/download/)
|
|
|
|
|
- [Ninja](https://github.com/ninja-build/ninja/releases)
|
|
|
|
|
- [Clang 9](https://releases.llvm.org/download.html#9.0.0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Clang with Ninja (recommended)
|
|
|
|
|
|
|
|
|
|
```bat
|
|
|
|
|
mkdir build
|
|
|
|
|
cd build
|
|
|
|
|
cmake -GNinja -DCLANG_CL=1 ..
|
|
|
|
|
ninja
|
|
|
|
|
```
|
|
|
|
@ -52,3 +66,14 @@ MSBuild /p:Configuration=Release wasm3.sln
|
|
|
|
|
cmake -GNinja ..
|
|
|
|
|
ninja
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Running WebAssembly spec tests
|
|
|
|
|
|
|
|
|
|
To run spec tests, you need `python3` and `WABT` (The WebAssembly Binary Toolkit).
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
cd test
|
|
|
|
|
python3 ./run-spec-test.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
It will automatically download, extract, preprocess the WebAssembly core test suite.
|
|
|
|
|