Keep maintained entry points and executable contracts. Remove historical guides and stale references that drift from command help and source.
1.9 KiB
1.9 KiB
Build YAMS
YAMS uses Meson as its canonical build graph. The setup scripts detect the host toolchain, resolve dependencies with Conan, and configure the build directory.
Requirements
- C++20 compiler: GCC 11+, Clang 14+, or MSVC 2022+
- Python 3.10+
- Meson, Ninja, CMake 3.23+, and Conan 2
pkg-configon Linux and macOS
Linux and macOS
./setup.sh Release
meson compile -C build/release
For a development build with tests:
./setup.sh Debug --with-tests
meson compile -C build/debug -j4
meson test -C build/debug --print-errorlogs
Use the build directory printed by setup.sh; existing local trees may use
builddir instead of build/debug.
Windows
Run from a Visual Studio 2022 developer shell:
./setup.ps1 Release
meson compile -C build/release
Offline builds
./setup.sh Release --offline
This requires all Conan packages and Meson wraps to exist locally. To prefer system dependencies:
YAMS_USE_SYSTEM_DEPS=true ./setup.sh Release --system-deps
Common options
meson configure build/release
meson configure build/release -Dbuild-tests=true
meson compile -C build/release
meson install -C build/release
Run ./setup.sh --help, ./setup.ps1 -?, and inspect
meson_options.txt for the current option set.
Local quality gate
git config core.hooksPath .githooks
scripts/quality-gate.sh
The default pre-push hook runs the blocking Linux and macOS CI gate. Coverage is explicit:
YAMS_PREPUSH_COVERAGE=1 git push
Troubleshooting
- Reconfigure after changing compilers or dependency profiles.
- Do not run concurrent Meson compiles against the same build directory.
- If Conan supplies a local Meson wrapper, use the wrapper printed by setup.
- Use
meson test -C <build-dir> --print-errorlogsfor failing tests. - Use
./setup.sh Debug --offline --with-teststo validate against the local dependency cache.