Meson é uma ferramenta para automatizar a construção (compilação) de software. Ele é um front-end para o Ninja. Meson é um software livre e de código aberto escrito em Python , sob a Apache License 2.0 .
O Meson suporta as linguagens C, C++, CUDA, D, Objective-C, Fortran, Java, C# , Rust e Vala, e possui um mecanismo para lidar com dependências chamado Wrap.
O Meson suporta GNU Compiler Collection, Clang, Microsoft Visual Studio e outros.
Para uma forma simples de entendimento, vamos criar um exemplo para um programa Olá, Mundo! em C++. Supondo que você possui o seguinte arquivo:
#include <iostream>
int main(){
std::cout << "Hello, World! Meson Build!" << '\n';
return 0;
}
No mesmo diretório do seu arquivo/projeto código você deve criar um arquivo de nome meson.build: vim meson.build
project('tutorial', 'cpp')
executable('demo', 'main.cpp')
Vamos criar o arquivo: tutorial, a linguagem é cpp(C++), o arquivo binário final terá o nome: demo e o arquivo que vamos compilar é o main.cpp.
Feito isso o próximo passo é rodar o comando:
meson builddir
A saída será similar a essa:
marcos@gentoo ~$ meson builddir
The Meson build system
Version: 0.53.1
Source dir: /home/marcos/teste-meson-ninja
Build dir: /home/marcos/teste-meson-ninja/builddir
Build type: native build
Project name: tutorial
Project version: undefined
C++ compiler for the host machine: c++ (gcc 9.2.0 "c++ (Gentoo 9.2.0-r2 p3) 9.2.0")
C++ linker for the host machine: c++ GNU ld.bfd 2.33.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 1
Found ninja-1.9.0.git.kitware.dyndep-1.jobserver-1 at /usr/bin/ninja
marcos@gentoo ~$
Ele irá criar um diretório com o nome builddir e precisamos entrar nele para efetuar a compilação:
cd builddir
ninja
Após isso é só rodar o arquivo executável gerado:
./demo
Hello, World! Meson Build!
Para mais informações e detalhes veja a documentação oficial.
Simples, né? Abraços!
ninja meson cpp linguagemc compiladores