Meson может работать с разными бэкэндами (Ninja, VisualStudio, XCode), в Unix подобных ОС нам предлагают использовать Ninja, минималистичный иснтрумент, простой и мощный, в основном ориентированный на скорость сборки (https://ninja-build.org/).В моем дистрибутиве Linux Mint 20.3 установлена версия 0.53.2 и она поддерживает следующие языки (C, C++, D , Fortran,Rust , Object-С), для демонстрации первичной настройки простого проекта из одного файла и сборки хватит и С++.
Создаем следующую структуру каталогов:
Система сборки Meson требует, чтобы мы хранили исходники отдельно от места, где мы будем собирать проект. Для сборки был создан каталог build. Далее переходим в корень проекта и создаем новый проект, для этого вызываем команду:
$ meson init --force -n testproject -l cpp --builddir ./build ./src/*
init- это команда, которая задает основное действие. Далее идет необязательна для первого запуска опция --force, которая принудительно пересоздаст файл проекта, если найдет существующий файл meson.build в каталоге. Далее указываем язык проекта, после каталог, в котором будем собирать проект и место где, лежат исходники.
После выполнения команды в окне терминала получим вывод:
Теперь у нас появился файл проекта, в котором будет храниться конфигурация, и дерево каталогов выглядит вот так:
Далее нам необходимо сконфигурировать проект для сборки и отладки, для этого выполняем команду:
$ meson setup --optimization 0 --werror ./build
По умолчанию meson создает конф файл для Ninja с параметрами для отладки, в качестве примера отключим оптимизацию и сделаем все ошибки фатальными.
Получим вывод в терминал:
После настройки наш проект порядком растолстел на файлы и каталоги:
Для того, чтобы собрать проект запускаем ninja
$ ninja -C ./build
В структуре проекта снова пополнение:
Если мы хотим собрать релиз сборку, то необходимо изменить конфигурацию проекта. Для этого выполняем команду:
$ meson configure --optimization 2 --werror --buildtype release ./build
и незабываем обязательно пересоздать файл для Ninja, иначе собираться проект будет по старому конф файлу:
$ meson --reconfigure ./build
повторно собираем проект:
$ninja -C ./build
теперь проект собран без отладочных символов, проверить это можно с помощью gdb, он вежливо сообщит что:
No debugging symbols found in ./testproject
Используя приведенные команды мы уже можем разрабатывать и тестировать проекты, но все это утомительно вводить и лучше использовать IDE, к сожалению в текущей версии Linux Mint (2022 г. у меня 20.3) есть только Qtcreator 4.11.0-2build2 что соответствует 2019 г. и в ней нет поддержки Meson.
В свежем релизе 8.0 есть экспериментальная поддержка данной системы сборки, включить ее можно через меню Help->About Plugins-> Build system.
П.С.
Нло прилетело и оставило это здесь скачать Qt Сreator 8.0
md5sum 2d9f447adcc0e3e70cab403c51608c05