Реліз системи збирання CMake 3.15

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

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

Основні поліпшення:

  • У генератор складальних сценаріїв на базі інструментарію Ninja додано початкову підтримку мови Швидко, що розвивається компанією Apple;
  • Додано підтримку варіанта компілятора Clang для Windows, що здійснює збірку з ABI MSVC, але використовує опції командою рядка в стилі GNU;
  • Додано змінні CMAKE_MSVC_RUNTIME_LIBRARY та MSVC_RUNTIME_LIBRARY для вибору runtime-бібліотек, що використовуються компіляторами на базі ABI MSVC (MS Visual Studio);
  • Для компіляторів, подібних до MSVC, CMAKE__FLAGS за замовчуванням припинено перерахувань прапорів управління виведенням попереджень, таких як «/W3»;
  • Додано вираз генератора "COMPILE_LANG_AND_ID:" для визначення опцій компілятора для цільових файлів, що застосовують змінні CMAKE__COMPILER_ID та LANGUAGE для кожного файлу з кодом;
  • У виразі генератора C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID і PLATFORM_ID додано підтримку зіставлення одного значення зі списком, елементи в якому розділені комою;

  • Додано змінну CMAKE_FIND_PACKAGE_PREFER_CONFIG, при якій виклик find_package() в першу чергу виконуватиме пошук файлу конфігурації пакета, навіть якщо доступний модуль пошуку;
  • Для інтерфейсних бібліотек додана підтримка установки властивостей PUBLIC_HEADER і PRIVATE_HEADER, які заголовки можуть задаватися за допомогою команди install(TARGETS) через передачу аргументів PUBLIC_HEADER і PRIVATE_HEADER;
  • Додано змінну CMAKE_VS_JUST_MY_CODE_DEBUGGING та цільову властивість VS_JUST_MY_CODE_DEBUGGING для включення режиму Just My Code у відладчику Visual Studio при компіляції з використанням MSVC cl 19.05 та новіших версій;
  • Перероблено модуль FindBoost, який тепер цілісніше відпрацьовує у режимах Config та Module за наявності інших модулів пошуку;
  • У команжу message() додано підтримку типів NOTICE, VERBOSE,
    DEBUG та TRACE;

  • Команда «export(PACKAGE)» тепер нічого не робить, поки явно не буде включена через змінну CMAKE_EXPORT_PACKAGE_REGISTRY.

Джерело: opennet.ru

Додати коментар або відгук