Liberigo de CMake 3.18 konstrusistemo

Enkondukita liberigo de transplatforma malferma konstrua skriptogeneratoro CMake 3.18, kiu funkcias kiel alternativo al Autotools kaj estas uzata en projektoj kiel KDE, LLVM/Clang, MySQL, MariaDB, ReactOS kaj Blender. La CMake-kodo estas skribita en C++ kaj distribuita sub la BSD-licenco.

CMake estas rimarkinda pro disponigado de simpla skriptlingvo, rimedo por etendi funkciecon per moduloj, minimuma nombro da dependecoj (neniu ligado al M4, Perl aŭ Python), kaŝmemorsubteno, la ĉeesto de iloj por kruc-kompilo, subteno por generado de konstruo. dosieroj por ampleksa gamo de konstrusistemoj kaj kompililoj, la ĉeesto ctest kaj cpack-utiloj por difini testajn skriptojn kaj konstrui pakaĵojn, cmake-gui-utilo por interage agordi konstruajn parametrojn.

Ĉefa plibonigoj:

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

fonto: opennet.ru

Aldoni komenton