Meson Fast build system
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
meson setup build
meson compile -C build
meson test -C build
meson install -C build
meson configure build
meson configure build -D<opt>=<val>
meson setup build --wipe
meson introspect build --targets
Concepts
- meson.build project definition
- Build dir options + Ninja files
- Artifacts targets
- Test results testlog
- Install tree prefix / DESTDIR
Setup
meson setup <builddir>
meson setup <builddir> <srcdir>
meson setup <builddir> --buildtype=<type>
meson setup <builddir> --prefix=<dir>
meson setup <builddir>
-D<opt>=<val>
meson setup <builddir>
--default-library=<kind>
meson setup <builddir> --reconfigure
meson setup <builddir> --wipe
meson setup <builddir> --native-file
<file>
meson setup <builddir> --cross-file
<file>
meson init -l <lang> -n <name>
Configure
meson configure <builddir>
meson configure <builddir>
-D<opt>=<val>
-Dwarning_level=<0-3|everything>
-Dwerror=true-Db_sanitize=<kind>
-Db_lto=true-Dc_args=<flags>
-Dwrap_mode=<mode>
Build
meson compile -C <builddir>
meson compile -C <builddir> <target>
meson compile -C <builddir> -j <N>
meson compile -C <builddir> -v
meson compile -C <builddir> --clean
ninja -C <builddir> <target>
Test
meson test -C <builddir>
meson test -C <builddir> --print-errorlogs
meson test -C <builddir> <name>
meson test -C <builddir> --list
meson test -C <builddir> --suite <suite>
meson test -C <builddir> --repeat <N>
meson test -C <builddir> --gdb <name>
meson test -C <builddir> --wrapper=<cmd>
Install and dist
meson install -C <builddir>
meson install -C <builddir> --destdir
<dir>
meson install -C <builddir> --dry-run
meson dist -C <builddir>
meson dist -C <builddir> --formats <fmt>
Subprojects and wraps
meson wrap search <name>
meson wrap install <name>
meson wrap update <name>
meson subprojects download
meson subprojects update
Introspect and tools
meson introspect <builddir> --targets
meson introspect <builddir> --buildoptions
meson introspect <builddir> --dependencies
meson devenv -C <builddir>
meson devenv -C <builddir> <cmd>
meson --versionmeson.build
project('<name>', 'c', version:
'<x.y>')
executable('<name>',
'<main.c>')
library('<name>', <sources>)
shared_library('<name>',
<sources>)
dependency('<name>')
dependency('<n>', required: false)
include_directories('<dir>')
subdir('<dir>')
test('<name>', <exe>)
install_headers('<file.h>')
configure_file(input: .., output: .., configuration:
..)
declare_dependency(link_with: <lib>)
meson_options.txt
option('<name>', type: 'boolean',
value: true)
Recipes
project('app', 'c', version: '0.1')exe = executable('app', 'main.c', install: true)test('smoke', exe)
meson setup build --buildtype=release --prefix=/usr/localmeson compile -C buildmeson test -C build --print-errorlogsmeson install -C build --destdir /tmp/stage
zdep = dependency('zlib')lib = library('core', 'core.c', dependencies: zdep)core_dep = declare_dependency(link_with: lib, include_directories: include_directories('.'))



