De release van de cross-platform open source build script generator CMake 4.0.0 is gepresenteerd, dat als alternatief voor Autotools fungeert en wordt gebruikt in projecten zoals KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. De CMake-code is geschreven in C++ en wordt verspreid onder de BSD-licentie.
CMake is opmerkelijk vanwege het bieden van een eenvoudige scriptsyntax, uitbreidingsmogelijkheden via modules, ondersteuning voor caching, beschikbaarheid van tools voor cross-compilatie, ondersteuning voor het genereren van buildbestanden voor een breed scala aan buildsystemen en compilers, en utilities zoals ctest en cpack voor het definiƫren van test- en pakketbuildscripts, evenals de cmake-gui utility voor interactieve configuratie van buildparameters.
Belangrijkste wijzigingen:
- De compatibiliteit met CMake versies vóór 3.5 is stopgezet. Bij binding aan niet-ondersteunde versies in de functies cmake_minimum_required() en cmake_policy() zal nu een foutmelding worden weergegeven.
- De omgevingsvariabele "CMAKE_POLICY_VERSION_MINIMUM" is toegevoegd om de minimale vereiste versie van CMake te overriden, waarvan de functionaliteit nodig is voor het bouwen van het project. De toegevoegde variabele maakt het mogelijk om zonder het wijzigen van aanroepen van cmake_minimum_required(VERSION) en cmake_policy(VERSION) in het project zelf te werken, bijvoorbeeld voor het instellen van versiebeleids in projecten die deze mogelijkheid niet biedt.
- In de generator expressie "$" is de operatie "NATIVE_PATH" toegevoegd voor het converteren van het bestands Pad vanuit de CMake-weergave (waarbij "\/" altijd wordt gebruikt voor het scheiden van mappen) naar het systeem Pad (in Unix-achtige systemen wordt "\/" gebruikt, terwijl in Windows "\\" wordt gebruikt).
- Op het macOS-platform, bij het gebruik van build script generators gebaseerd op de Ninja-toolset en Makefile generators, blijft de compiler die aanwezig is in de map "\/usr\/bin" nu zoals hij is, zonder binding aan de compiler in Xcode. Bij het bouwen voor het macOS-platform is de keuze van het SDK standaard stopgezet en wordt de compiler niet langer de '-isysroot'-vlag doorgestuurd (de compiler kiest nu zelf het SDK en niet CMake).
- De eigenschap LINK_WARNING_AS_ERROR is toegevoegd, waarbij linkerwaarschuwingen worden behandeld als fouten. Om deze eigenschap uit te schakelen, is de commandoregeloptie "ālink-no-warning-as-error" toegevoegd.
- De cmake utility is voorzien van de optie "āproject-file" voor het specificeren van een alternatieve naam voor het bestand CMakeLists.txt.
- In de CPack generator is de mogelijkheid toegevoegd om ongecomprimeerde tar-archieven te creƫren.
- In de target_link_libraries() functie zijn ondersteuning voor de prefix «LINKER:» en de variabelen CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* toegevoegd.
- Nieuwe variabelen zijn toegevoegd:
- 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.
- Nieuwe eigenschappen zijn toegevoegd: DEBUGGER_WORKING_DIRECTORY en VS_SOLUTION_ITEMS (voor het koppelen van bestanden aan .sln voor Visual Studio).
- Er is een CMake-bouwproces voor SunOS aangemaakt voor de architecturen sparc64 en x86_64.
Bron: opennet.ru
