Месон буилд систем издање 0.51

објављено буилд систем издање Мезон 0.51, који се користи за прављење пројеката као што су Кс.Орг Сервер, Меса, Лигхттпд, системд, ГСтреамер, Ваиланд, ГНОМЕ и ГТК+. Месонов код је написан у Пајтону и испоручује се лиценциран под Апацхе 2.0.

Кључни циљ развоја Месон-а је да обезбеди велику брзину процеса монтаже у комбинацији са практичношћу и лакоћом коришћења. Уместо услужног програма маке, подразумевана верзија користи комплет алата ниња, али је могуће користити и друге позадине, као што су кцоде и ВисуалСтудио. Систем има уграђени руковалац зависности на више платформи који вам омогућава да користите Месон за прављење пакета за дистрибуције. Правила асемблера су специфицирана на поједностављеном језику специфичном за домен, веома су читљива и разумљива кориснику (како су аутори замислили, програмер треба да потроши минимум времена на писање правила).

Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Главни иновације Мезон 0.51:

  • Добавлена поддержка прозрачной сборки существующих проектов, в которых используются сборочные сценарии CMake. Meson теперь напрямую может собирать простые субпроекты (такие как одиночные библиотеки) с использованием модуля CMake по аналогии со штатными субпроектами (в том числе субпроекты на CMake могут размещаться в каталоге subprojects );
  • Для всех применяемых компиляторов включено предварительное тестирование через сборку и исполнение простейших тестовых файлов (sanity check), не ограничиваясь тестированием указанных пользователем флагов для кросс-компиляторов (отныне проверяются и родные для текущей платформы компиляторы).
  • Добавлена возможность определения опций командной строки, применяемых при кросс-компиляции, с привязкой через задание префикса платформы перед опцией. Ранее опции командной строки охватывали только сборку для родной платформы и не могли указываться для кросс-компиляции. Теперь опции командной строки применяются независимо от того осуществляется нативная сборка или кросс-компиляция, гарантируя, что для нативных и кросс-сборок будет получен идентичный результат;
  • Добавлена возможность указания флага «—cross-file» более одного раза в командной строке для перечисления нескольких cross-файлов;
  • Добавлена поддержка компилятора ICL (Intel C/C++ Compiler) для платформы Windows (ICL.EXE и ifort);
  • Добавлена начальная поддержка инструментария для CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • В объект «dependency» добавлен метод «get_variable», позволяющий получить значение переменной без учёта типа текущей зависимости (например, dep.get_variable(pkg-config : ‘var-name’, cmake : ‘COP_VAR_NAME));
  • Добавлен новый аргумент параметров целевой сборки — «link_language» для явного определения языка, используемого при вызове компоновщика. Например, основная программа на Fortran, может вызывать код на C/C++, что приведёт к автоматическому выбору C/C++, в том время как нужно использовать компоновщик от Fortran;
  • Изменена обработка флагов препроцессора CPPFLAGS. Если раньше Meson отдельно сохранял CPPFLAGS и специфичные для языков флаги компиляции (CFLAGS, CXXFLAGS), то теперь они обрабатываются нераздельно и перечисленные в CPPFLAGS флаги применяются как ещё один источник флагов компиляции для языков, которые их поддерживают;
  • Вывод custom_target и custom_target[i] теперь может использоваться в качестве аргументов в операциях link_with и link_whole;
  • В генераторах добавлена возможность задания дополнительных зависимостей при помощи опции «depends» (например, generator(program_runner, output: [‘@[емаил заштићен]’], depends: exe));
  • В find_library добавлена опция static для охвата поиском только статически связанных библиотек;
  • Для python.find_installation добавлена возможность определения наличия заданного Python-модуля для конкретной версии Python;
  • Добавлен новый модуль unstable-kconfig для разбора файлов kconfig;
  • Добавлена новая команда «subprojects foreach», принимающая команду с аргументами и запускающая её во всех каталогах субпроектов;

Извор: опеннет.ру

Додај коментар