Mae CMake yn nodedig am ddarparu iaith sgriptio syml, ffordd o ymestyn ymarferoldeb trwy fodiwlau, nifer fach iawn o ddibyniaethau (dim rhwymo i M4, Perl na Python), cefnogaeth caching, presenoldeb offer ar gyfer traws-grynhoi, cefnogaeth ar gyfer cynhyrchu adeiladu ffeiliau ar gyfer ystod eang o systemau adeiladu a chasglwyr, y ctest presenoldeb a chyfleustodau cpack ar gyfer diffinio sgriptiau prawf a phecynnau adeiladu, cyfleustodau cmake-gui ar gyfer gosod paramedrau adeiladu yn rhyngweithiol.
Y prif
- Добавлена поддержка языков Objective C («OBJC») и Objective
C++ («OBJCXX»), которые могут быть активированы через команды project() и enable_language(), после чего код в файлах «.m» «.mm» будет компилироваться как код на Objective C и Objective C++, а не как код на C++, как это было раньше; - Добавлена поддержка компилятора Clang на платформе Solaris;
- Добавлены новые параметры командной строки: «cmake -E true|false» для вывода кодов возврата 0 и 1; «cmake —trace-redirect=» для перенаправления информации о трассировке в файл, вместо
«stderr»; команда «cmake —loglevel» переименована в «—log-level» для приведения в соответствие с наименованием остальных команд; - Добавлена команда «target_precompile_headers()» для перечисления списка заголовочный файлов, используемых при предкомпиляции (сокращает время сборки);
- Добавлено свойство «UNITY_BUILD», активирующее пакетный режим обработки исходных файлов в генераторах для ускорения сборки;
- Добавлены команды «find_file()», «find_library()», «find_path()»,
«find_package()» и «find_program()» для поиска файлов, библиотек, путей, пакетов и исполняемых файлов в соответствии с переменными, определяющими пути поиска различных категорий файлов.
Для управления базовыми путями для поиска используются переменные «CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH», «CMAKE_FIND_USE_CMAKE_PATH», «CMAKE_FIND_USE_CMAKE_SYSTEM_PATH», «CMAKE_FIND_USE_PACKAGE_ROOT_PATH», «CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH» и «CMAKE_FIND_USE_PACKAGE_REGISTRY»; - В команду «file()» добавлен режим «file(GET_RUNTIME_DEPENDENCIES)», позволяющий рекурсивно извлечь список библиотек, задействованных при динамическом связывании исполняемого файла или библиотеки. Режим пришёл на смену команде GetPrerequisites(), которая теперь объявлена устаревшей;
- В команде «ctest(1)» реализована возможность сериализации тестов, отталкиваясь от ресурсов, требуемых для каждого теста;
- Объявлена устаревшей переменная «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», вместо которой следует использовать «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
- Улучшена поддержка платформы AIX. При использовании свойства «ENABLE_EXPORTS», помимо исполняемого файла, теперь формируется файл импорта для компоновщика, сохраняемый с расширением «.imp». В плагинах, создаваемых при помощи вызова «add_library()» с опцией «MODULE», данный файл может применяться при компоновке с использованием команды «target_link_libraries()». Runtime-компоновка в AIX по умолчанию отключена, так как CMake теперь предоставляет всю необходимую информацию о символах для связывания во время загрузки. Для применения runtime-компоновки динамических библиотек или загружаемых модулей следует явно указывать опции «-Wl,-G» в списки флагов запуска компоновщика, определяемых через переменные «CMAKE_SHARED_LINKER_FLAGS» и «CMAKE_MODULE_LINKER_FLAGS».
Ffynhonnell: opennet.ru