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 :
- W narzędziu do generowania skryptów budowy opartym na Ninja dodano wstępną obsługę języka , rozwijanego przez firmę Apple;
- Dodano wsparcie dla wariantu kompilatora Clang na Windows, który przeprowadza kompilację z ABI MSVC, ale używa opcji w stylu GNU w lini komend;
- Dodano zmienne CMAKE_MSVC_RUNTIME_LIBRARY i MSVC_RUNTIME_LIBRARY do wyboru bibliotek runtime używanych przez kompilatory oparte na ABI MSVC (MS Visual Studio);
- Dla kompilatorów takich jak MSVC, w CMAKE__FLAGS domyślnie zaprzestano listowania flag sterujących wyświetlaniem ostrzeżeń, takich jak "\/W3";
- Dodano wyrażenie generatora "COMPILE_LANG_AND_ID:" do określenia opcji kompilatora dla docelowych plików, które wykorzystują zmienne CMAKE__COMPILER_ID i LANGUAGE dla każdego pliku z kodem;
- W wyrażeniach generatora C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID oraz PLATFORM_ID dodano wsparcie dla mapowania jednego wartości do listy, której elementy są oddzielone przecinkiem; - Dodano zmienną CMAKE_FIND_PACKAGE_PREFER_CONFIG, w której wywołanie find_package() najpierw będzie szukać pliku konfiguracyjnego pakietu, nawet jeśli dostępny jest moduł wyszukiwania;
- Dla bibliotek interfejsowych dodano wsparcie dla ustawiania właściwości PUBLIC_HEADER i PRIVATE_HEADER, których nagłówki mogą być ustawiane za pomocą komendy install(TARGETS) poprzez przekazanie argumentów PUBLIC_HEADER i PRIVATE_HEADER;
- Dodano zmienną CMAKE_VS_JUST_MY_CODE_DEBUGGING i docelową właściwość VS_JUST_MY_CODE_DEBUGGING, aby włączyć tryb "Just My Code" w debuggerze Visual Studio przy kompilacji z użyciem MSVC cl 19.05 i nowszych wersji;
- Przeprojektowano moduł FindBoost, który teraz lepiej działa w trybach Config i Module przy dostępności innych modułów wyszukiwania;
- Do komendy message() dodano wsparcie dla typów NOTICE, VERBOSE,
DEBUG i TRACE; - Komenda "export(PACKAGE)" teraz nic nie robi, dopóki nie zostanie jawnie włączona przez zmienną CMAKE_EXPORT_PACKAGE_REGISTRY.
Źródło: opennet.ru
