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