muon(1)
| muon(1) | General Commands Manual | muon(1) |
NAME
muon - a meson-compatible build system
SYNOPSIS
muon [-vh] [-C <chdir>] <command> [<args>]
muon setup
[-D[subproject:]option=value...] build
cd build
<invoke backend build tool>
muon test [options]
muon install [options]
DESCRIPTION
muon interprets source files written in the meson dsl and produces buildfiles for a backend. Currently the only supported backend is ninja.
When building meson projects with muon, you typically first start by running the setup command in the project root. This will create buildfiles for the backend in the build dir you specify. You then invoke the backend, e.g.
ninja -C <build dir>
If the project defines tests, you may run them with the test subcommand, and finally install the project with the install subcommand.
OPTIONS
COMMANDS
muon requires a command.
All commands accept a -h option which prints a brief summary of their usage.
analyze
Run a static analyzer on the current project.
OPTIONS:
benchmark
check
Check if filename parses.
OPTIONS:
fmt
Format a source file. The formatting is currently minimally configurable, and is based on the official meson style guide <https://mesonbuild.com/Style-guide.html>.
OPTIONS:
CONFIGURATION OPTIONS
| key | type | default | description |
| max_line_len | uint | 80 | The maximum length of lines before they are split |
| indent_by | str | ' ' | A string that will be used to indent with |
| space_array | bool | false | Whether to include spaces around array elements (ex. [1] vs [ 1 ]) |
| kwargs_force_multiline | bool | false | Make every dictionary literal and function call with kwargs expand into multiple lines. |
| wide_colon | bool | false | Whether to put a space before the colon operator (ex. `key : val`) |
| no_single_comma_function | bool | false | Don't add a trailing comma to multi-line function calls with only one argument. |
install
Installs the project. The DESTDIR environment variable is respected and will prefix all installation directories if it is present.
OPTIONS:
internal
Internal contains several subcommands used by muon internally. These commands are subject to change at any time and should not be relied upon.
SUBCOMMANDS:
internal eval
Interpret a source file. The interpreter environment is substantially different from the typical environment during setup. Build related functions are unavailable, as well as many other functions including subdir. Additionally, the variable argv is defined as an array containing the commandline starting at <filename>.
OPTIONS:
internal exe
Execute <cmd> with arguments <args>.
OPTIONS:
internal repl
Start a meson dsl repl. The functions available are limited as with internal eval.
internal dump_funcs
Print all supported functions, methods, and module functions with their arguments, argument types, and return types to stdout. This subcommand is mainly useful for generating https://muon.build/status.html.
meson
A compatibility layer that attempts to translate all flags and operands from meson cli syntax to muon cli syntax. For example, the following two commands:
muon meson setup build --werror --prefix=/ muon meson test -C build --list
Would be translated into the following two muon versions respectively:
muon setup -Dwerror=true -Dprefix=/ build muon -C build test -l
This compatibility layer is also enabled when muon's executable is named meson.
For a more detailed usage information you can use the following two commands:
muon meson -h muon meson <subcommand> -h
NOTE: This is a best-effort translation and does not guarantee or imply full cli compatibility. Many unimplemented flags are ignored and attempting to use an unsupported subcommands will result in an error.
options
Lists available project options and defaults. This command may either be run from the project root or from a build directory. Running this command from a build directory highlights configured option values in the output, whereas running it from the project root causes the default value for each option to be highlighted.
OPTIONS:
samu
Executes an embedded copy of samu(1). This command requires that muon was compiled with samu enabled.
setup
Interpret all source files and generate buildfiles in build dir.
OPTIONS:
summary
Print a previously configured project's summary.
test
Execute tests defined in source files.
The default is to execute all tests, but you can also specify which tests to execute on the command line.
<test> should consist of an optional project name, followed by a colon and then a test name. Either may be omitted. For example,
"test name" and ":test name" will match all
tests named 'test name' in any project.
"proj:test name" will match all tests named 'test name' in the
project 'proj'.
"proj:" will match all tests in the project 'proj'.
Additionally, the test name may be a glob expression. For example,
"proj:long*" will match all tests with names starting with 'long' in the project 'proj'.
OPTIONS:
version
Print out version information as well as enabled features.
EXTENSIONS
muon provides some extra functions that may be called within source files. They are documented below.
SEE ALSO
meson.build(5) meson-reference(3) meson(1)
AUTHORS
Maintained by Stone Tickle <lattis@mochiro.moe>, who is assisted by other open source contributors. For more information about muon development, see <https://sr.ht/~lattis/muon>.
| 2024-03-28 |
