Vydanie zostavovacieho systému CMake 3.18

Predloženej vydanie multiplatformového open build generátora skriptov CMake 3.18, ktorý funguje ako alternatíva k Autotools a používa sa v projektoch ako KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender. Kód CMake je napísaný v C++ a distribuovaný pod licenciou BSD.

CMake je pozoruhodný tým, že poskytuje jednoduchý skriptovací jazyk, prostriedok na rozšírenie funkčnosti prostredníctvom modulov, minimálny počet závislostí (bez väzby na M4, Perl alebo Python), podporu ukladania do vyrovnávacej pamäte, prítomnosť nástrojov na krížovú kompiláciu, podporu pre generovanie zostavy súbory pre širokú škálu zostavovacích systémov a kompilátorov, obslužné programy pre prítomnosť ctest a cpack na definovanie testovacích skriptov a zostavovanie balíčkov, utilita cmake-gui na interaktívne nastavenie parametrov zostavovania.

Hlavné vylepšenia:

  • Для языка 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 для указания файла со спецификацией ресурсов.

Zdroj: opennet.ru

Pridať komentár