You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wasm3/DEV.md

2.2 KiB

Wasm3 development notes

M3/Wasm project uses CMake. It can also be easily integarted into any build system. General build steps look like:

mkdir -p build
cd build
cmake ..
make -j8

It's recommended to use Clang/Ninja to build the project.

Note: When using GCC or Microsoft C++ Compiler, all .c files are forced to be comiled as C++ to eliminate some errors. Currently, support for these compilers was added for evaluation purposes.

Build on Linux

mkdir -p build
cd build
cmake -GNinja -DCLANG_SUFFIX="-9" ..
ninja

GCC

cmake -GNinja ..
ninja

Build on Windows

Prerequisites:

Recommended tools:

REM  Prepare environment (if needed):
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set PATH=C:\Program Files\CMake\bin;%PATH%
set PATH=C:\Program Files\LLVM\bin;%PATH%
set PATH=C:\Python36-32\;C:\Python36-32\Scripts\;%PATH%
mkdir build
cd build
cmake -GNinja -DCLANG_CL=1 ..
ninja

Clang with MSBuild

cmake -G"Visual Studio 16 2019" -A x64 -T ClangCL ..
MSBuild /p:Configuration=Release wasm3.sln

MSVC with MSBuild

cmake -G"Visual Studio 16 2019" -A x64 ..
MSBuild /p:Configuration=Release wasm3.sln

MSVC with Ninja

cmake -GNinja ..
ninja

Build for microcontrollers

In ./platforms/ folder you can find projects for different targets. Some of them are using Platformio, so you can follow the regular pio build process. Others have custom instructions in respective README.md files.

Running WebAssembly spec tests

To run spec tests, you need python3 and WABT (The WebAssembly Binary Toolkit).

cd test
python3 ./run-spec-test.py

It will automatically download, extract, preprocess the WebAssembly core test suite.