Meson build system for zstandard ================================ Meson is a build system designed to optimize programmer productivity. It aims to do this by providing simple, out-of-the-box support for modern software development tools and practices, such as unit tests, coverage reports, Valgrind, CCache and the like. This Meson build system is provided with no guarantee and maintained by Dima Krasner \. It outputs one `libzstd`, either shared or static, depending on `default_library` option. The migrated compatibility modules are built with Cargo as part of every Meson library build. Static builds flatten the Cargo object members into `libzstd.a`, so external C consumers link one archive. Shared builds use a whole-archive link for the Cargo archive, retaining Rust-only public ABI exports. ## How to build `cd` to this meson directory (`build/meson`) ```sh meson setup -Dbin_programs=true -Dbin_contrib=true builddir cd builddir ninja # to build ninja install # to install ``` You might want to install it in staging directory: ```sh DESTDIR=./staging ninja install ``` To configure build options, use: ```sh meson configure ``` See [man meson(1)](https://manpages.debian.org/testing/meson/meson.1.en.html). For a cross build, set the Cargo target explicitly, for example: ```sh meson setup -Dzstd_rust_target=aarch64-unknown-linux-gnu builddir ``` On 32-bit Linux, the `i686-unknown-linux-gnu` target is selected automatically. Set `-Dzstd_rust_archiver=...` when the C cross toolchain needs a non-default archiver. The `huf_force_decompress_x1` and `huf_force_decompress_x2` options select matching C and Rust decoder modes.