CMake wyróżnia się zapewnianiem prostego języka skryptowego, sposobem rozszerzania funkcjonalności poprzez moduły, minimalną liczbą zależności (brak wiązania z M4, Perlem lub Pythonem), obsługą buforowania, obecnością narzędzi do kompilacji krzyżowej, obsługą generowania kompilacji pliki dla szerokiej gamy systemów kompilacji i kompilatorów, obecność narzędzi ctest i cpack do definiowania skryptów testowych i budowania pakietów, narzędzie cmake-gui do interaktywnego ustawiania parametrów kompilacji.
Głównym
- Język CUDA można zbudować przy użyciu Clang na platformach innych niż Windows. Oddzielna kompilacja CUDA nie jest jeszcze obsługiwana na żadnej platformie.
- Dodano obsługę profilowania skryptów CMake przy użyciu opcji „--profiling-output” i „--profiling-format”.
- Polecenia add_library() i add_executable() obsługują teraz tworzenie aliasów docelowych, które odnoszą się do nieglobalnych importowanych celów.
- Dodano polecenie cmake_language() do metaoperacji na poleceniach skryptowych lub wbudowanych.
- Dodano podkomendę file(CONFIGURE), o funkcjonalności podobnej do konfiguracji_pliku(), ale przekazującą zawartość jako ciąg znaków, a nie jako odwołanie do pliku.
- Do poleceń find_program(), find_library(), find_path() i find_file() dodano opcję WYMAGANA, aby zatrzymać przetwarzanie z powodu błędu, jeśli nic nie zostanie znalezione.
- Dodano zmienną „CMAKE_CUDA_ARCHITECTURES” wskazującą architekturę CUDA (ustawianą automatycznie, jeśli zmienna „CMAKE_CUDA_COMPILER_ID” jest ustawiona na „NVIDIA”).
- Dodano właściwość „UNITY_BUILD_MODE” służącą do wyboru algorytmu grupowania plików źródłowych dołączanych do generatorów (BATCH, GROUP).
- Dodano moduł CheckLinkerFlag umożliwiający sprawdzenie poprawności flag linków.
- Dodano wyrażenia generatora $ , $ , $ i $ .
- Do narzędzia ctest dodano zmienną CTEST_RESOURCE_SPEC_FILE w celu określenia pliku specyfikacji zasobów.
Źródło: opennet.ru