Stone Tickle e3525d7400
move non yaml files out of .builds
This should hopefully fix CI from lists.sr.ht.
2023-10-29 07:36:36 -04:00
2023-01-17 22:00:28 -05:00
2023-01-04 07:14:02 -05:00
2023-01-14 21:09:57 -05:00
2023-10-03 13:44:48 -04:00
2023-10-29 07:36:36 -04:00
2023-04-24 19:40:10 -04:00
2022-11-04 20:38:13 -04:00
2022-10-25 10:54:31 -04:00
2022-10-25 10:54:31 -04:00
2023-10-03 13:44:48 -04:00
2023-03-18 06:54:42 -04:00

muon logo

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. demo
  • muon 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 (samu can be optionally bootstrapped with tools/bootstrap_ninja.sh)

For pkgconf support:

  • libpkgconf
  • pkgconf or pkg-config

For [wrap-file] support:

  • libcurl
  • libarchive

To build documentation:

  • scdoc for muon.1 and meson.build.5
  • python3 and py3-yaml for 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.

Description
No description provided
Readme 8 MiB
Languages
C 74.6%
Meson 21%
C++ 1.8%
HTML 1.5%
Shell 0.7%
Other 0.2%