Meson (ソフトウェア)
他の一般的なビルドシステムと同様に、正しい増分ビルドは高速なビルドのために最も重要な機能である。
素のMakeとは異なり、個々の設定段階において、コマンドライン引数・環境変数・コマンドの出力が次回のビルドでは部分的には適用されないことが保証されている。これは古いビルドに繋がる。
Ninjaのように、Mesonはソースファイルのグロブには非対応である。全てのソースファイルをビルド定義ファイルにリストすることを要求することで、ビルド定義ファイルのタイムスタンプはソースファイルが変更されたかを判断するのに十分であり、これにより削除されたソースファイルを確実に検出することができる。CMakeはグロブに対応しているが、上記の理由からグロブを使用しないことを推奨している。
Mesonはインストールされていればccacheを自動的に使用する。また、ABIに変更がない場合、共有ライブラリのシンボルテーブルへの変更を検出し、ライブラリに対する実行ファイルの再リンクをスキップする。プリコンパイル済みヘッダ(英語版)に対応しているが、設定が必要である。デバッグビルドはデフォルトでは最適化が行われない。
Mesonの設定ファイル (meson.build) はPythonに似た構文になっている。MesonをPython以外のプログラミング言語で再実装することができるようにするために、Python自体とは異なる。
Mesonの設定ファイルは意図的にチューリング完全にならないように設計されているので、プログラムを記述することはできない。その代わりに、Mesonが対応していないプログラミング言語でカスタムビルドターゲットを定義することができる。
Mesonの設定ファイルは強い型付けなので、ある組み込み型が別の組み込み型に暗黙的に変換されることはない。特に、makefileとは異なり、リスト型は空白で文字列を分割することはない。従って、ファイル名やコマンドライン引数に空白やその他の文字が含まれていても適切に処理される。