Несколько дней тому назад Выпущен кроссплатформенный генератор скриптов с открытым исходным кодом CMake 3.15 который действует как альтернатива Autotools и используется в таких проектах, как KDE, LLVM / Clang, MySQL, MariaDB, ReactOS и Blender.
CMake - это мультиплатформенный инструмент для генерации кода или автоматизации. Название является аббревиатурой от «кроссплатформенный make» (кроссплатформенный make, помимо использования «make» в названии, CMake - это отдельный пакет и более высокий уровень, чем общая система make. Unix, будучи похожим на autotools.
О CMake
CMake отличается простым языком сценариев, инструменты для расширения функциональности между модулями, минимальное количество зависимостей (без привязки к M4, Perl или Python), поддержка кеширования, доступность инструментов для кросс-компиляции, поддержка создания файлов сборки для широкого спектра систем компиляции и компиляторов.
Утилиты ctest и cpack для определения сценариев тестирования и создания пакетов с утилитой cmake-gui для интерактивной настройки параметров сборки.
CMake используется для управления процессом компиляции программного обеспечения с помощью простых и независимых файлов конфигурации. с платформы. Cmake генерирует собственные make-файлы и рабочие области, которые можно использовать в желаемой среде разработки.
Она сравнима с системой сборки Unix GNU в том, что процесс управляется файлами конфигурации, в случае CMake называется CMakeLists.txt.
В отличие от системы сборки GNU, которая ограничено платформами UnixCMake поддерживает создание файлов для различных операционных систем, что упрощает обслуживание и устраняет необходимость иметь несколько наборов файлов для каждой платформы.
Процесс сборки контролируется путем создания одного или нескольких файлов CMakeLists.txt в каждом каталоге (включая подкаталоги).
Код CMake написан на C ++ и распространяется под лицензией BSD.
CMake 3.15 Основные новые функции
Эта новая версия подчеркивается появлением начальной поддержки генератора для языка Swift Разработанный Apple, был добавлен в генератор сценариев сборки Ninja Toolkit.
Кроме этого, также есть поддержка опции компилятора Clang для Windows, созданный с помощью ABI MSVC, но использующий параметры командной строки в стиле GNU.
Разработчики подчеркивают, что переменные CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
добавляются для выбора библиотек времени выполнения, используемых компиляторами ABI MSVC
(MS VisualStudio).
Для таких компиляторов, как MSVC
, en
CMAKE__FLAGS
По умолчанию список флагов управления предупреждениями, таких как «/ W3», остановлен.
Из других улучшений, отмеченных в сообщении о выпуске этой новой версии, мы находим следующие:
- Добавлено генерирующее выражение '
COMPILE_LANG_AND_ID
: »Чтобы определить параметры компилятора для целевых файлов, которые используют переменныеCMAKE__COMPILER_ID
yLANGUAGE
для каждого файла кода - Генератор выражений
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
добавить поддержку сопоставления значения со списком, элементы, разделенные запятыми - Переменная добавлена
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, в котором вызов find_package () сначала будет искать файл конфигурации пакета, даже если модуль поиска доступен - Для интерфейсных библиотек добавлена поддержка настройки свойств.
PUBLIC_HEADER y PRIVATE_HEADER
, чьи заголовки могут быть настроены командой установки (TARGETS), передавая аргументыPUBLIC_HEADER
yPRIVATE_HEADER
- Переменная добавлена
CMAKE_VS_JUST_MY_CODE_DEBUGGING
и объект назначенияVS_JUST_MY_CODE_DEBUGGING
для включения режима «Только мой код» в отладчике Visual Studio при компиляции с использованием MSVC cl 19.05 и более новых версий. - Доработан модуль FindBoost, который теперь более полно прорабатывается в режимах конфигурации и модуля при наличии других модулей поиска.
- В команду message () добавлена поддержка типов NOTICE, VERBOSE, DEBUG и TRACE.
- Команда "export (PACKAGE)" теперь ничего не делает, пока не будет явно разрешена через переменную
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Если вы хотите узнать об этом больше, вы можете проконсультироваться по следующей ссылке.