CMake 3.18 būvēšanas sistēmas izlaišana

Iesniedzis starpplatformu atvērtā būvējuma skriptu ģeneratora izlaišana CMake 3.18, kas darbojas kā alternatīva Autotools un tiek izmantota tādos projektos kā KDE, LLVM/Clang, MySQL, MariaDB, ReactOS un Blender. CMake kods ir rakstīts C++ valodā un tiek izplatīts saskaņā ar BSD licenci.

CMake ir ievērojama ar vienkāršu skriptu valodas nodrošināšanu, līdzekli funkcionalitātes paplašināšanai, izmantojot moduļus, minimālu atkarību skaitu (nav saistīšanas ar M4, Perl vai Python), kešatmiņas atbalstu, savstarpējās kompilācijas rīku klātbūtni, atbalstu būvējuma ģenerēšanai. faili plašam veidošanas sistēmu un kompilatoru klāstam, klātbūtnes ctest un cpack utilītas testa skriptu un veidošanas pakotņu definēšanai, cmake-gui utilīta interaktīvai būvēšanas parametru iestatīšanai.

Galvenais uzlabojumi:

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

Avots: opennet.ru

Pievieno komentāru