Izdaja sistema gradnje CMake 3.18

Predložil izdaja večplatformskega odprtega generatorja skriptov za gradnjo CMake 3.18, ki deluje kot alternativa Autotools in se uporablja v projektih, kot so KDE, LLVM/Clang, MySQL, MariaDB, ReactOS in Blender. Koda CMake je napisana v C++ in se distribuira pod licenco BSD.

CMake je znan po tem, da zagotavlja preprost skriptni jezik, sredstvo za razširitev funkcionalnosti prek modulov, minimalno število odvisnosti (brez vezave na M4, Perl ali Python), podporo za predpomnjenje, prisotnost orodij za navzkrižno prevajanje, podporo za ustvarjanje gradnje datoteke za široko paleto gradbenih sistemov in prevajalnikov, prisotnost pripomočkov ctest in cpack za definiranje testnih skriptov in gradnjo paketov, pripomoček cmake-gui za interaktivno nastavitev gradbenih parametrov.

Glavni izboljšave:

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

Vir: opennet.ru

Dodaj komentar