Back to TILs

Meson

Table of contents

What is Meson?

The main design point of Meson is that every moment a developer spends writing or debugging build definitions is a second wasted. So is every second spent waiting for the build system to actually start compiling code.

Features

Installation

apt install meson ninja-build

Project initialization

mkdir testproject
meson init --name testproject --build

Why Meson instead of GNU/Make

Make is a tool which controls the generation of executables and other non-source files of a program from the program’s source files.

TBD

Why Meson instead of Autoconf

GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available.

TBD

Why Meson instead of CMake

CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.

TBD

Why Meson instead of Maven

Apache Maven is a Java-based tool for build automation and project management (in software development). It is centered around a Project Object Model (POM) described in a XML file that describes the project structure and its dependencies to other components and libraries.

TBD

Why Meson instead of Gradle

Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.

Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Powered by a Groovy DSL and packed with innovation, Gradle provides a declarative way to describe all kinds of builds through sensible defaults. Gradle is quickly becoming the build system of choice for many open source projects, leading edge enterprises and legacy automation challenges.

TBD