The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз системы сборки CMake 3.18

18.07.2020 23:30

Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.18, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.

CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.

Основные улучшения:

  • Для языка CUDA обеспечена возможность сборки при помощи Clang на платформах, отличных от Windows. Раздельная компиляция CUDA пока не поддерживается ни на одной платформе.
  • Добавлена поддержка профилирования сценариев CMake, используя опции "--profiling-output" и "--profiling-format".
  • В команды add_library() и add_executable() добавлена поддержка создания целей-псевдонимов (Alias Targets), ссылающихся на неглобальные импортированные цели.
  • Добавлена команда cmake_language() для мета-операций над скриптованными или встроенными командами.
  • Добавлена подкоманда file(CONFIGURE), аналогичная по функциональности команде configure_file(), но с передачей содержимого в форме строки, а не ссылки на файл.
  • В команды find_program(), find_library(), find_path() и find_file() добавлена опция REQUIRED, предписывающая остановить обработку с ошибкой, если ничего не было найдено.
  • Добавлена переменная "CMAKE_CUDA_ARCHITECTURES" для указания архитектуры CUDA (устанавливается автоматически, если переменная "CMAKE_CUDA_COMPILER_ID" принимает значение "NVIDIA").
  • Добавлено свойство "UNITY_BUILD_MODE" для выбора в генераторах алгоритма группировки включаемых исходных файлов (BATCH, GROUP).
  • Добавлен модуль CheckLinkerFlag для проверки корректности флагов компоновки.
  • Добавлены выражения генератора $<DEVICE_LINK:…>, $<HOST_LINK:…>, $<LINK_LANGUAGE:…> и $<LINK_LANG_AND_ID:…>.
  • В утилиту ctest добавлена переменная CTEST_RESOURCE_SPEC_FILE для указания файла со спецификацией ресурсов.


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Релиз системы сборки CMake 3.17.0
  3. OpenNews: Сотрудник Red Hat представил сборочную систему Goals. Выпуск GNU Make 4.3
  4. OpenNews: Проект Qt прекращает разработку сборочной системы Qbs в пользу CMake
  5. OpenNews: Релиз генератора файлов сборки GNU Automake 1.16
  6. OpenNews: Доступен GNU Autoconf 2.69b для тестирования изменений, потенциально нарушающих совместимость
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53393-cmake
Ключевые слова: cmake, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:50, 18/07/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –16 +/
     

     ....ответы скрыты (4)

  • 1.4, artenaki (ok), 01:06, 19/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В Debian Sid и Latest Ubuntu до сих пор 3.16. У меня в Xenial 3.18. Реально слоупоки, 3.17 зарелизился в марте. И в SUSE 3.17. А в Mageia собрали 3.18 https://madb.mageia.org/package/show/application/0/release/cauldron/name/cmake
    Ну вот меня роллинги покусали, теперь тоже драчу на версии.
    UPD: В Mageia rc3.
     
     
  • 2.5, artenaki (ok), 01:13, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Fedora уже много дней как сломали поиск по пакетам
    https://apps.fedoraproject.org/packages но в 33 3.18. В генте 3.17.
     
  • 2.6, Аноним (6), 09:11, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если нужен свежий CMake, его можно скачать с их сайта и использовать на любом дистрибутиве. Это так же подходит и для CI (скачиваешь скриптом CI, устанавливаешь PATH и работаешь). Так что практически на любом Linux в любом проекте можно использовать последний CMake.
     
     
  • 3.11, Тот самы парень (?), 13:55, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это особо актуально для бесплатников, с ограничением на время сборки и размер кэша. Спасибо за совет.
     
  • 2.7, Аноним (7), 09:51, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем им? Пока все пакеты собираются, острой нужды в обновлении нет.
     
  • 2.9, sage (??), 11:53, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот меня роллинги покусали

    Как что-то плохое.

     
  • 2.14, Аноним (14), 22:06, 19/07/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня есть скрипт, собирающий для дебиана/убунту пакет из предсобранных бинарников.
     

  • 1.13, Аноним (13), 16:29, 19/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > CMake 3.18 .. в таких проектах как ReactOS

    Так вот оно чо, Михалыч!

     
  • 1.25, ann (??), 00:10, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отлично, молодцы.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру