home | help
muon(1) 		     General Commands Manual			 muon(1)

NAME
     muon - a meson-compatible build system

SYNOPSIS
     muon [-vh] [-C <chdir>] <command> [<args>]

     muon build [-D[subproject:]option=value...] <build dir>
     muon -C <build dir> test [options]
     muon -C <build dir> install [options]

DESCRIPTION
     muon  interprets  source files written in the meson dsl and produces build-
     files for a backend.

     When building meson projects with muon, you typically first start	by  run-
     ning  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
     *	 -C <path> - chdir to path
     *	 -q - silence logging except for errors
     *	 -v - turn on debug messages
     *	 -h - show help

COMMANDS
     muon requires a command

     All  commands  accept a -h option which prints a brief summary of their us-
     age.

   analyze
	 muon analyze [-lq] [-m <normal|script|module>] [-O <path>]  [-W  <diag-
	 nostic>] <command>

	 run a static analyzer

	 OPTIONS
	 *   -l - optimize output for editor linter plugins
	 *   -m <normal|script|module> - analyze with language mode
	 *   -O <path> - read project file with matching path from stdin
	 *   -q - only report errors
	 *   -W  <diagnostic> - enable or disable diagnostics -Wlist can be used
	     to list all supported diagnostics. -Werror will turn  all	warnings
	     into errors.
	 *   -h - show help

	 COMMANDS
	 *   file - analyze a single file.  Implies -m module.
	 *   lsp - run the analyzer as a language server
	 *   root-for - determine the project root given a meson file
	 *   trace - print a tree of all meson source files that are evaluated

   analyze file
	 muon analyze file

	 analyze a single file.  Implies -m module.

	 -m  script can also be passed to analyze a file in script mode. This is
	 useful for catching bugs in scripts that will be  evaluated  with  muon
	 internal eval, or script modules.

   analyze lsp
	 muon analyze lsp

	 run the analyzer as a language server

   analyze root-for
	 muon analyze root-for

	 determine the project root given a meson file

   analyze trace
	 muon analyze trace

	 print a tree of all meson source files that are evaluated

   build
	 muon  build  [-#wW]  [-b  <breakpoint>]  [-B  <debugger pipe>] [-D <op-
	 tion>=<value>] [-p  <file>]  <build  dir|source  dir>	[ninja	options]
	 [ninja targets]

	 setup and build in a single step

	 Invoke  muon  setup and build in a single command.  Additionally, setup
	 will only run if the passed options have changed, including options im-
	 plicitly set using environment variables.

	 OPTIONS
	 *   -# - enable setup progress bar
	 *   -b <breakpoint> - set breakpoint
	 *   -B <debugger pipe> - enable DAP server connected to pipe
	 *   -D <option>=<value> - set options
	 *   -p <file> - preload <file>
	 *   -w - wipe all caches before setup
	 *   -W - only setup if options have changed
	 *   -h - show help

   devenv
	 muon devenv <command to run>

	 run commands in developer environment

	 OPTIONS
	 *   -h - show help

   fmt
	 muon fmt [-eilq] [-c <path>] <file>[ <file>[...]

	 format a meson source file

	 OPTIONS
	 *   -c <path> - read configuration from path
	 *   -e - respect .editorconfig configuration
	 *   -i - format files in-place
	 *   -l - like -q but also print failing filenames
	 *   -q - exit with 1 if files would be modified by muon fmt
	 *   -h - show help

   help
	 muon help [-r] [query]

	 get help

	 OPTIONS
	 *   -r - reference. get help for meson functions
	 *   -h - show help

   install
	 muon install [-nU] [-d <destdir>]

	 install files

	 OPTIONS
	 *   -d <destdir> - set destdir
	 *   -n - dry run
	 *   -U - uninstall
	 *   -h - show help

   internal
	 muon internal <command>

	 internal subcommands

	 OPTIONS
	 *   -h - show help

	 COMMANDS
	 *   check - parse and compile meson files
	 *   dump_docs - output docs
	 *   dump_toolchains - output toolchain arguments
	 *   eval - evaluate a file
	 *   exe - run an external command
	 *   generate_test_html - generate a html test report from a tests.json
	 *   repl - start a meson language repl
	 *   summary - print a configured project's summary

   internal check
	 muon internal check [-dfpr] [-b <breakpoint>]	[-m  <normal|script|mod-
	 ule>] [-o <offset>] <filename>

	 parse and compile meson files

	 OPTIONS
	 *   -b <breakpoint> - set breakpoint
	 *   -d - print dissasembly
	 *   -f - enable formatting mode
	 *   -m <normal|script|module> - parse with language mode
	 *   -o  <offset>  - set an offset in hexadecimal when printing instruc-
	     tions
	 *   -p - print parsed ast
	 *   -r - enable relaxed mode
	 *   -h - show help

   internal dump_docs
	 muon internal dump_docs [-c] [-o <man|html|json>]

	 output docs

	 OPTIONS
	 *   -c - dump cli docs
	 *   -o <man|html|json> - set output type
	 *   -h - show help

   internal dump_toolchains
	 muon	internal   dump_toolchains   [-s   <key>=<val>]   [-t	 <compo-
	 nent>=<type>|list>]

	 output toolchain arguments

	 OPTIONS
	 *   -s <key>=<val> - set the value for a template argument
	 *   -t  <component>=<type>|list> - set the type for a component or list
	     all component types
	 *   -h - show help

   internal eval
	 muon internal eval [-es] [-b <breakpoint>]  [-B  <debugger  pipe>]  [-c
	 <program text>] <filename> [args]

	 evaluate a file

	 The  execution  environment  is  restricted,  function  availability is
	 marked in the reference manual.

	 OPTIONS
	 *   -b <breakpoint> - set breakpoint
	 *   -B <debugger pipe> - enable DAP server connected to pipe
	 *   -c <program text> - evaluate program passed in as string
	 *   -e - lookup <filename> as an embedded script
	 *   -s - disable functions for fuzzing
	 *   -h - show help

   internal exe
	 muon internal exe [-a <file>] [-c <file>] [-e <file>] [-f  <file>]  [-R
	 <file>] cmd [args]

	 run an external command

	 OPTIONS
	 *   -a <file> - load arguments from data file
	 *   -c <file> - capture output to file
	 *   -e <file> - load environment from data file
	 *   -f <file> - feed file to input
	 *   -R <file> - remove file if it exists before executing the command
	 *   -h - show help

   internal generate_test_html
	 muon internal generate_test_html

	 generate a html test report from a tests.json

	 OPTIONS
	 *   -h - show help

   internal repl
	 muon internal repl

	 start a meson language repl

	 OPTIONS
	 *   -h - show help

   internal summary
	 muon internal summary

	 print a configured project's summary

	 OPTIONS
	 *   -h - show help

   meson
	 muon 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  more detailed usage information you can use the following two com-
	 mands:

	     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  at-
	 tempting to use an unsupported subcommands will result in an error.

   options
	 muon options [-am]

	 list project options

	 OPTIONS
	 *   -a - list all options
	 *   -m - list only modified options
	 *   -h - show help

   setup
	 muon  setup  [-#wW]  [-b  <breakpoint>]  [-B  <debugger pipe>] [-D <op-
	 tion>=<value>] [-p <file>] <build dir|source dir>

	 setup a build directory

	 OPTIONS
	 *   -# - enable setup progress bar
	 *   -b <breakpoint> - set breakpoint
	 *   -B <debugger pipe> - enable DAP server connected to pipe
	 *   -D <option>=<value> - set options
	 *   -p <file> - preload <file>
	 *   -w - wipe all caches before setup
	 *   -W - only setup if options have changed
	 *   -h - show help

   subprojects
	 muon subprojects [-d <directory>] <command>

	 manage subprojects

	 OPTIONS
	 *   -d <directory> - manually specify subprojects directory
	 *   -h - show help

	 COMMANDS
	 *   clean - clean wrap-git subprojects
	 *   fetch - fetch a single subproject from a .wrap file
	 *   list - list subprojects with .wrap files and their status
	 *   update - update subprojects with .wrap files

   subprojects clean
	 muon subprojects clean [-f] <list of subprojects>

	 clean wrap-git subprojects

	 OPTIONS
	 *   -f - actually perform the removal
	 *   -h - show help

   subprojects fetch
	 muon subprojects fetch [-o <directory>] <subproject.wrap>

	 fetch a single subproject from a .wrap file

	 OPTIONS
	 *   -o <directory> - the directory to fetch into, e.g. subprojects
	 *   -h - show help

   subprojects list
	 muon subprojects list <list of subprojects>

	 list subprojects with .wrap files and their status

	 OPTIONS
	 *   -h - show help

   subprojects update
	 muon subprojects update [-f] <list of subprojects>

	 update subprojects with .wrap files

	 OPTIONS
	 *   -f - fail if any subproject fails to update
	 *   -h - show help

   test
	 muon test [-abflrRSv] [-d <auto|dots|bar>] [-e <setup>] [-j <jobs>] [-o
	 <term|html|json>] [-s <suite>] [-t <factor>] [test [test [...]]

	 run tests

	 OPTIONS
	 *   -a - include all tests from all projects
	 *   -b - run benchmarks instead of tests
	 *   -d <auto|dots|bar> - change progress display mode
	 *   -e <setup> - use test setup
	 *   -f - fail fast; exit after first failure
	 *   -j <jobs> - set the number of test workers
	 *   -l - list tests that would be run
	 *   -o <term|html|json> - set output mode
	 *   -r - build tests only
	 *   -R - disable automatic rebuild
	 *   -s <suite> - only run items in  <suite>,  may  be	passed	multiple
	     times
	 *   -S - print a summary with elapsed time
	 *   -t <factor> - multiply test timeouts with <factor>
	 *   -v - increase verbosity, may be passed twice
	 *   -h - show help

   version
	 muon version

	 print version information

	 OPTIONS
	 *   -h - show help

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>.

			       muon 0.6.0-1c825e41			 muon(1)

home | help