Доступны системы сборки CMake 3.27.0 и Meson 1.2

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 2578
Зарегистрирован: 20.08.2022

#

Доступны системы сборки CMake 3.27.0 и Meson 1.2
Дата публикации:Sun, 23 Jul 2023 09:38:03 +0300




Опубликован релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.27, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки. Код CMake написан на языке C++ и распространяется под лицензией BSD.



Основные улучшения:
  • В утилиту cmake встроен интерактивный отладчик для языка сценариев, вызываемый при указании опции "--debugger".



    Реализовано свойство "SKIP_LINTING", позволяющее отключить проверку кода для определённых исходных файлов.
    Для генераторов добавлен флаг "COMPILE_ONLY", при котором выполняется только компиляция без динамического связывания.

    В генераторы сборочных сценариев для Visual Studio 2015 и более новых версий в переменную CMAKE_GENERATOR_PLATFORM добавлена поддержка поля "version=" для выбора верcии Windows SDK.

    Для разделяемых библиотек, собираемых для платформы macOS, реализована возможность создания tbd-файлов (Text-Based Definition) с данными о библиотеке.
    Объявлены устаревшими и будут удалены в одном из следующих выпусков компоненты для обеспечения совместимости с версиям CMake старше 3.5.

    Удалён модуль FindCUDA, который был объявлен устаревшим в выпуске CMake 3.10. Проекты, завязанные на FindCUDA, рекомендовано перевести на встроенные в CMake средства для поддержки CUDA.

    Удалены модули FindPythonInterp и FindPythonLibs, объявленные устаревшими в выпуске CMake 3.12. Вместо них следует использовать модули FindPython3, FindPython2 или FindPython.

    При выполнении команды "cmake --build $dir --verbose" обеспечен вывод рабочего каталога и опций командной строки, используемых для сборки.


Дополнительно можно отметить выпуск сборочной системы Meson 1.2.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0. Поддерживается кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja, но возможно применение и других бэкендов, таких как xcode и VisualStudio.



В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил). Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.




Основные новшества Meson 1.2:
  • Добавлена поддержка инструментариев Metrowerks Embedded для архитектур PowerPC и ARM.

    Добавлен метод str.splitlines() для разделения строки на массив из строк.

    Добавлена поддержка вложенного вызова генераторов, например, "gen2.process(gen1.process('input.txt'))".

    В блок declare_dependency реализована поддержка ключевого слова extra_files для добавления дополнительных файлов к сборочной цели.
    В команду "meson setup" добавлена опция '--genvslite' для упрощения переключения между сборочными конфигурациями для среды Visual Studio.


    В gnome.generate_gir() добавлена поддержка аргумента env для установки переменных окружения.

    Расширены сохраняемые для инроспекции данные: в intro-compilers.json перечислены используемые компиляторы, в intro-machines.json добавлена информация о хостовой, сборочной и целевой системах, в
    intro-dependencies.json отражены сведения о внутренних зависимостях, в intro-targets.json указаны зависимости, vs_module_defs, win_subsystem и параметры компоновщика.

    В дополнение к свойству system добавлены свойства kernel и subsystem для более точной идентификации системы.
    Разрешено использование словарей для опций default_options и override_options (например, можно указывать "default_options : {'key': 'value'}" вместо "default_options : ['key=value']").

    Добавлены параметры rust.bindgen и bindgen_clang_arguments для передачи дополнительных аргументов компиляторам rustc и clang.

    Разрешено использование маски для выбора выполняемых тестов, например, для запуска тестов, начинающихся на слово basic, можно указать "meson test basic*".


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59481

Жизнь за Нер'зула!

Ответить