branch | description |
---|---|
main |
Development for future releases |
release/3.0.x |
3.0.x-* series of releases |
To speed up development, we're starting with Ubuntu 20.04. We'll support additional operating systems as time and personnel allow. In the mean time, they may break.
To speed up development and reduce support overhead, we're initially only supporting the following build approach. CMake options not listed here may break. Build scripts may break. Dockerfiles may break.
apt-get update && apt-get install \
binaryen \
build-essential \
ccache \
cmake \
curl \
git \
libboost-all-dev \
libcurl4-openssl-dev \
libssl-dev \
libtinfo5 \
libusb-1.0-0-dev \
libzstd-dev \
llvm-11-dev \
ninja-build \
npm \
pkg-config \
time
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
make install
isn't supported unless:
- You used cmake's
-DCMAKE_INSTALL_PREFIX=....
option, or - You're building a docker image
We support the following CMake options:
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache Speed up builds
-DCMAKE_C_COMPILER_LAUNCHER=ccache Speed up builds
-DCMAKE_BUILD_TYPE=DEBUG Debug builds
-DDISABLE_WASM_SPEC_TESTS=yes Speed up builds and skip many tests
-DCMAKE_INSTALL_PREFIX=/foo/bar Where to install to
-DENABLE_OC=no Disable OC support; useful when this repo is used
as a library
-GNinja Use ninja instead of make
(faster on high-core-count machines)
I highly recommend the ccache options. They don't speed up the first clean build, but they speed up future clean builds after the first build.
cd build
npm install
# Runs parallelizable tests in parallel. This runs much faster when
# -DDISABLE_WASM_SPEC_TESTS=yes is used.
ctest -j $(nproc) -LE "nonparallelizable_tests|long_running_tests" -E "full-version-label-test|release-build-test|print-build-info-test"
# These tests can't run in parallel.
ctest -L "nonparallelizable_tests"
# These tests can't run in parallel. They also take a long time to run.
ctest -L "long_running_tests"