An implementation of the meson build system in c99
See the codemuon is an implementation of the meson build system in c99 with minimal dependencies.
muon analyze - a static analyzer and language server for meson.build files.muon fmt - a meson.build code formattermuon is close to feature-complete with meson for c-like languages: c, c++,
objc, objc++. Support for other languages is planned.
See the Muon Reference for more detailed information.
Things missing include:
Other differences from meson are described in the Muon Docs.
If you want to contribute, try using muon to build your favorite project.
Patches and bug reports welcome!
Muon runs CI on all major desktop platforms. CI status may be viewed on muon's ci dashboard.
Essential:
For pkgconfig support:
pkg-config binarylibpkgconf (-Dlibpkgconf=enabled)For [wrap-file] support:
libcurllibarchiveTo build documentation:
scdoc for muon.1 and meson.build.5python3 and py3-yaml for docs imported from the meson projectTo run most project tests:
python3If 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
This will by default build a ninja implementation (samu) into the resulting
executable. To disable this behavior use CFLAGS=-DBOOTSTRAP_NO_SAMU. This
only disables samurai for muon-bootstrap. To disable samurai in the final muon
executable use the standard option -Dsamurai=disabled.
Stage 2:
build/muon-bootstrap setup build
build/muon-bootstrap -C build samu
build/muon -C build test -R
build/muon -C build install
Please refer to the contributing guide before sending patches. Send patches on the mailing list or PRs on github, report issues on the issue tracker or github_issues, and discuss in #muon on libera.chat.
muon is generally licensed under the GPL version 3. For a more detailed
breakdown, each file contains license and copyright information at the top. All
referenced licenses can be found in the LICENSES directory.
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.
(top 30 of 47)
C
74.7%
Meson
21.2%
C++
1.7%
HTML
1.5%
An implementation of the meson build system in c99
See the codemuon is an implementation of the meson build system in c99 with minimal dependencies.
muon analyze - a static analyzer and language server for meson.build files.muon fmt - a meson.build code formattermuon is close to feature-complete with meson for c-like languages: c, c++,
objc, objc++. Support for other languages is planned.
See the Muon Reference for more detailed information.
Things missing include:
Other differences from meson are described in the Muon Docs.
If you want to contribute, try using muon to build your favorite project.
Patches and bug reports welcome!
Muon runs CI on all major desktop platforms. CI status may be viewed on muon's ci dashboard.
Essential:
For pkgconfig support:
pkg-config binarylibpkgconf (-Dlibpkgconf=enabled)For [wrap-file] support:
libcurllibarchiveTo build documentation:
scdoc for muon.1 and meson.build.5python3 and py3-yaml for docs imported from the meson projectTo run most project tests:
python3If 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
This will by default build a ninja implementation (samu) into the resulting
executable. To disable this behavior use CFLAGS=-DBOOTSTRAP_NO_SAMU. This
only disables samurai for muon-bootstrap. To disable samurai in the final muon
executable use the standard option -Dsamurai=disabled.
Stage 2:
build/muon-bootstrap setup build
build/muon-bootstrap -C build samu
build/muon -C build test -R
build/muon -C build install
Please refer to the contributing guide before sending patches. Send patches on the mailing list or PRs on github, report issues on the issue tracker or github_issues, and discuss in #muon on libera.chat.
muon is generally licensed under the GPL version 3. For a more detailed
breakdown, each file contains license and copyright information at the top. All
referenced licenses can be found in the LICENSES directory.
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.
(top 30 of 47)
C
74.7%
Meson
21.2%
C++
1.7%
HTML
1.5%