Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

meson (1)

Name

meson - a high productivity build system

Synopsis

Please see following description for synopsis

Description

MESON(1)                         User Commands                        MESON(1)



NAME
       meson - a high productivity build system

DESCRIPTION
       Meson  is  a build system designed to optimize programmer productivity.
       It aims to do this by providing simple, out-of-the-box support for mod-
       ern  software development tools and practices, such as unit tests, cov-
       erage reports, Valgrind, Ccache and the like.

       The main Meson executable provides many subcommands to access  all  the
       functionality.


The setup command
       Using  Meson is simple and follows the common two-phase process of most
       build systems. First you run Meson to configure your build:

       meson setup [ options ] [ build directory ] [ source directory ]

       Note that the build directory must be different from the source  direc-
       tory.  Meson  does not support building inside the source directory and
       attempting to do that leads to an error.

       After a successful configuration step you can build the source by  run-
       ning the actual build command in the build directory. The default back-
       end of Meson is Ninja, which can be invoked like this.

       ninja [ target ]

       You only need to run the Meson command once: when you  first  configure
       your  build  dir. After that you just run the build command. Meson will
       autodetect changes in your source tree and regenerate all files  needed
       to build the project.

       The  setup  command  is  the default operation. If no actual command is
       specified, Meson will assume you meant to do a setup. That  means  that
       you can set up a build directory without the setup command like this:

       meson [ options ] [ build directory ] [ source directory ]


   options:
       --version
              print version number

       --help print command line help


The configure command
       meson  configure  provides  a way to configure a Meson project from the
       command line.  Its usage is simple:

       meson configure [ build directory ] [ options to set ]

       If build directory is omitted, the current directory is used instead.

       If no parameters are set, meson configure will print the value  of  all
       build options to the console.

       To set values, use the -D command line argument like this.

       meson configure -Dopt1=value1 -Dopt2=value2


The introspect command
       Meson  introspect is a command designed to make it simple to  integrate
       with other tools, such as IDEs. The output of this command is in JSON.

       meson introspect [ build directory ] [ option ]

       If build directory is omitted, the current directory is used instead.


   options:
       --targets
              print all top level targets (executables, libraries, etc)

       --target-files
              print the source files of the given target

       --buildsystem-files
              print all files that make  up  the  build  system  (meson.build,
              meson_options.txt etc)

       --tests
              print all unit tests

       --help print command line help


The test command
       meson  test  is a helper tool for running test suites of projects using
       Meson.  The default way of running tests is to invoke the default build
       command:

       ninja [ test ]

       meson test provides a richer set of tools for invoking tests.

       meson  test  automatically  rebuilds the necessary targets to run tests
       when used with the Ninja backend.  Upon build failure, meson test  will
       return  an  exit code of 125.  This return code tells git bisect run to
       skip the current commit.  Thus bisecting using git can be  done  conve-
       niently like this.

       git bisect run meson test -C build_dir


   options:
       --repeat
              run tests as many times as specified

       --gdb  run tests under gdb

       --list list all available tests

       --wrapper
              invoke all tests via the given wrapper (e.g. valgrind)

       -C     Change  into  the  given directory before running tests (must be
              root of build directory).

       --suite
              run tests in this suite

       --no-suite
              do not run tests in this suite

       --no-stdsplit
              do not split stderr and stdout in test logs

       --benchmark
              run benchmarks instead of tests

       --logbase
              base of file name to use for writing test logs

       --num-processes
              how many parallel processes to use to run tests

       --verbose
              do not redirect stdout and stderr

       -t     a multiplier to use for test timeout values  (usually  something
              like 100 for Valgrind)

       --setup
              use the specified test setup


The wrap command
       Wraptool  is  a  helper utility to manage source dependencies using the
       online wrapdb service.

       meson wrap < command > [ options ]

       You should run this command in the top level source directory  of  your
       project.


   Commands:
       list   list all available projects

       search search projects by name

       install
              install a project with the given name

       update update the specified project to latest available version

       info   show available versions of the specified project

       status show  installed and available versions of currently used subpro-
              jects


EXIT STATUS
       0      Successful.

       1      Usage error, or an error parsing or executing meson.build.

       2      Internal error.

       125    meson test could not rebuild the required targets.




       ATTRIBUTES
              See attributes(7) for descriptions of the following attributes:


              +---------------+-----------------------+
              |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
              +---------------+-----------------------+
              |Availability   | developer/build/meson |
              +---------------+-----------------------+
              |Stability      | Pass-through volatile |
              +---------------+-----------------------+

SEE ALSO
       http://mesonbuild.com/

       https://wrapdb.mesonbuild.com/



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source     was     downloaded      from       https://github.com/meson-
       build/meson/releases/download/0.59.2/meson-0.59.2.tar.gz.

       Further information about this software can be found on the open source
       community website at http://mesonbuild.com/.



meson 0.59.2                    September 2021                        MESON(1)