The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.1 KiB
79 lines
2.1 KiB
5 years ago
|
---
|
||
|
title: Comparisons
|
||
|
...
|
||
|
|
||
|
# Comparing Meson with other build systems
|
||
|
|
||
|
A common question is *Why should I choose Meson over a different build
|
||
|
system X?* There is no one true answer to this as it depends on the
|
||
|
use case. Almost all build systems have all the functionality needed
|
||
|
to build medium-to-large projects so the decision is usually made on
|
||
|
other points. Here we list some pros and cons of various build systems
|
||
|
to help you do the decision yourself.
|
||
|
|
||
|
## GNU Autotools
|
||
|
|
||
|
### Pros
|
||
|
|
||
|
Excellent support for legacy Unix platforms, large selection of
|
||
|
existing modules.
|
||
|
|
||
|
### Cons
|
||
|
|
||
|
Needlessly slow, complicated, hard to use correctly, unreliable,
|
||
|
painful to debug, incomprehensible for most people, poor support for
|
||
|
non-Unix platforms (especially Windows).
|
||
|
|
||
|
## CMake
|
||
|
|
||
|
### Pros
|
||
|
|
||
|
Great support for multiple backends (Visual Studio, XCode, etc).
|
||
|
|
||
|
### Cons
|
||
|
|
||
|
The scripting language is cumbersome to work with. Some simple things
|
||
|
are more complicated than necessary.
|
||
|
|
||
|
## SCons
|
||
|
|
||
|
### Pros
|
||
|
|
||
|
Full power of Python available for defining your build.
|
||
|
|
||
|
### Cons
|
||
|
|
||
|
Slow. Requires you to pass your configuration settings on every
|
||
|
invocation. That is, if you do `scons OPT1 OPT2` and then just
|
||
|
`scons`, it will reconfigure everything without settings `OPT1` and
|
||
|
`OPT2`. Every other build system remembers build options from the
|
||
|
previous invocation.
|
||
|
|
||
|
## Bazel
|
||
|
|
||
|
### Pros
|
||
|
|
||
|
Proven to scale to very large projects.
|
||
|
|
||
|
### Cons
|
||
|
|
||
|
Implemented in Java. Poor Windows support. Heavily focused on Google's
|
||
|
way of doing things (which may be a good or a bad thing). Contributing
|
||
|
code requires [signing a CLA](https://bazel.build/contributing.html).
|
||
|
|
||
|
## Meson
|
||
|
|
||
|
### Pros
|
||
|
|
||
|
The fastest build system [see
|
||
|
measurements](Performance-comparison.md), user friendly, designed to
|
||
|
be as invisible to the developer as possible, native support for
|
||
|
modern tools (precompiled headers, coverage, Valgrind etc). Not Turing
|
||
|
complete so build definition files are easy to read and understand.
|
||
|
|
||
|
### Cons
|
||
|
|
||
|
Relatively new so it does not have a large user base yet, and may thus
|
||
|
contain some unknown bugs. Visual Studio and XCode backends not as
|
||
|
high quality as Ninja one.
|