This should hopefully fix CI from lists.sr.ht.
muon
muon is an implementation of the meson build system in c99 with minimal dependencies.
Features
muon analyze- a static analyzer for meson.build files. demomuon fmt- a meson.build code formatter- An interactive stepping debugger with the
dbg()function. - fast
Status
muon is close to feature-complete with the core of meson for c and c++.
See the status page for more detailed information.
Things missing include:
- cross-compilation support
- build optimizations like pch and unity
- some
b_options - dependencies with a custom configuration tool
- many modules
Other differences from meson are described in doc/differences.md
If you want to contribute, try using muon to build your favorite project.
Patches and bug reports welcome!
Dependencies
Essential:
c99- a ninja-compatible build tool (
samucan be optionally bootstrapped withtools/bootstrap_ninja.sh)
For pkgconf support:
libpkgconfpkgconforpkg-config
For [wrap-file] support:
libcurllibarchive
To build documentation:
scdocfor muon.1 and meson.build.5python3andpy3-yamlfor meson-reference.3
To run most project tests:
python3
Install
If you already have meson or muon and are not interested in bootstrapping, you can just do a typical meson configure, build, install:
$meson setup build
cd build
ninja build
$meson test
$meson install
Otherwise, you must bootstrap muon.
The bootstrapping process has two stages. The first stage produces a muon
binary capable of building itself (but not necessarily anything else). The
second stage produces the final binary.
Stage 1:
./bootstrap.sh build
Optionally, if your system does not provide a ninja-compatible build tool, you may use the provided ninja bootstrapping script.
./tools/bootstrap_ninja.sh build
ninja=build/samu
Stage 2:
build/muon setup build
$ninja -C build
build/muon -C build test
build/muon -C build install
Contribute
Please refer to the contributing guide before sending patches. Send patches on the mailing list, report issues on the issue tracker, and discuss in #muon on libera.chat.
License
muon is licensed under the GPL version 3 (see LICENSE). Tests under
tests/project were copied from the meson project tests and are licensed
under Apache 2.0.
Credits
Although I had already had the idea to re-implement meson in C, I was initially
inspired to actually go out and do it when I saw boson. muon's code was
originally based on boson, though has since been almost completely rewritten.