CMake примітний наданням простої мови сценаріїв, засобами розширення функціональності через модулі, мінімальним числом залежностей (немає прив'язки до M4, Perl або Python), підтримкою кешування, наявністю інструментів для крос-компіляції, підтримкою генерації файлів складання для широкого спектру систем складання утиліт ctest і cpack для визначення сценаріїв тестування та складання пакетів, утилітою cmake-gui для інтерактивного налаштування параметрів складання.
Основні
- Для мови 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 для перевірки коректності прапорів компонування.
- Додані вирази генератора $ , $ , $ та $ .
- В утиліту ctest додано змінну CTEST_RESOURCE_SPEC_FILE для вказівки файлу зі специфікацією ресурсів.
Джерело: opennet.ru