CMake 4.0.0 er blevet præsenteret som en tværplatform open-source build script generator, der fungerer som et alternativ til Autotools og anvendes i projekter som KDE, LLVM/Clang, MySQL, MariaDB, ReactOS og Blender. CMake-koden er skrevet i C++ og distribueres under BSD-licensen.
CMake er bemærkelsesværdig for at tilbyde et enkelt scriptsprog, muligheden for funktionalitetsextension via moduler, understøttelse af caching, værktøjer til kryds-kompilation, generering af buildfiler til et bredt udvalg af build-systemer og compilere, samt værktøjerne ctest og cpack til test scripting og pakke bygning, og util cmake-gui til interaktiv konfiguration af build-parametre.
Vigtige ændringer:
- Kompatibiliteten med CMake-versioner før version 3.5 er ophørt. Ved binding til ikke-understøttede versioner i funktionerne cmake_minimum_required() og cmake_policy() vil der nu blive genereret en fejl.
- Der er tilføjet en miljøvariabel "CMAKE_POLICY_VERSION_MINIMUM" for at tilsidesætte den minimum CMake-version, der er nødvendig for at bygge projektet. Den tilsatte variabel giver mulighed for at undgå ændringer i kald til cmake_minimum_required(VERSION) og cmake_policy(VERSION) i selve projektet, fx til version politik justering i projekter, der ikke undergår den mulighed.
- I generatorudtrykket "$" er der tilføjet operationen "NATIVE_PATH" til at konvertere filstien fra CMake-repræsentationen (hvor kataloger altid adskilles med " / ") til systemstien (i Unix-lignende systemer anvendes " / ", og i Windows " \ ").
- På macOS-platformen, ved brug af build script generators baseret på Ninja værktøjet og Makefile generators, vil compileren i " /usr/bin " nu blive efterladt uændret, uden binding til compileren i Xcode. Ved bygning til macOS-platformen er valget af SDK og overførsel af flaget "-isysroot" (SDK vælger nu compileren selv, snarere end CMake) som standard stoppet.
- Egenskaben LINK_WARNING_AS_ERROR er tilføjet, hvor linker-advarsler vil blive betragtet som fejl. For at deaktivere denne egenskabs handling er der tilføjet en kommandolinjeindstilling "—link-no-warning-as-error".
- Der er tilføjet en indstilling "—project-file" til cmake-værktøjet for at angive et alternativt navn til CMakeLists.txt-filen.
- Generatoren CPack har fået muligheden for at oprette ukomprimerede tar-arkiver.
- Der er tilføjet support for præfikset «LINKER:» i target_link_libraries() kommandoen samt i variablerne CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS*.
- Nye variabler er blevet tilføjet:
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- Der er tilføjet nye egenskaber: DEBUGGER_WORKING_DIRECTORY og VS_SOLUTION_ITEMS (til vedhæftning af filer til .sln for Visual Studio).
- Færdige CMake-bygninger til SunOS for arkitekturerne sparc64 og x86_64 er blevet sikret.
Kilde: opennet.ru
