wydanie wieloplatformowego otwartego generatora skryptów kompilacji , który pełni rolę alternatywy dla Autotools i jest używany w takich projektach jak KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake jest napisany w języku C++ i jest udostępniany na licencji BSD.
CMake wyróżnia się tym, że oferuje prosty język skryptowy, możliwości rozszerzenia funkcjonalności poprzez moduły, minimalną liczbę zależności (brak powiązań z M4, Perlem czy Pythonem), wsparcie dla pamięci podręcznej, dostępność narzędzi do kompilacji krzyżowej, generację plików kompilacji dla szerokiej gamy systemów kompilacji i kompilatorów, oraz narzędzi ctest i cpack do definiowania skryptów testowych i pakietów, a także narzędzię cmake-gui do interaktywnej konfiguracji parametrów kompilacji.
Podstawowe :
- Dla języka CUDA wprowadzono możliwość kompilacji przy użyciu Clang na platformach innych niż Windows. Rozdzielna kompilacja CUDA wciąż nie jest wspierana na żadnej platformie.
- Dodano wsparcie dla profilowania skryptów CMake, używając opcji „—profiling-output” i „—profiling-format”.
- Do poleceń add_library() i add_executable() dodano wsparcie dla tworzenia celów aliasów (Alias Targets) odnoszących się do nietransparently zaimportowanych celów.
- Dodano polecenie cmake_language() do operacji meta na skryptowych lub wbudowanych poleceniach.
- Dodano podpolecenie file(CONFIGURE), analogiczne do funkcjonalności polecenia configure_file(), ale z przekazywaniem treści w formie ciągu, a nie linku do pliku.
- Do poleceń find_program(), find_library(), find_path() i find_file() dodano opcję REQUIRED, która nakazuje przerwanie przetwarzania z błędem, jeśli nic nie zostało znalezione.
- Dodano zmienną „CMAKE_CUDA_ARCHITECTURES” do określenia architektury CUDA (ustawiana automatycznie, jeśli zmienna „CMAKE_CUDA_COMPILER_ID” ma wartość „NVIDIA”).
- Dodano właściwość „UNITY_BUILD_MODE” do wyboru algorytmu grupowania dołączanych plików źródłowych w generatorach (BATCH, GROUP).
- Dodano moduł CheckLinkerFlag do sprawdzania poprawności flag łączenia.
- Dodano wyrażenia generatora $, $, $ i $.
- Do narzędzia ctest dodano zmienną CTEST_RESOURCE_SPEC_FILE do określenia pliku z specyfikacją zasobów.
Źródło: opennet.ru
