Es presenta el llançament del generador de scripts de compilació de codi obert multiplataforma CMake 4.0.0 que actua com una alternativa a Autotools i s'utilitza en projectes com KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. El codi CMake està escrit en C++ i es distribueix sota la llicència BSD.
CMake destaca per oferir un llenguatge de script senzill, eines per ampliar la funcionalitat a través de mòduls, suport per a la memòria cau, la presència d'eines per a la compilació creuada, suport per a la generació de fitxers de compilació per a una àmplia gamma de sistemes de compilació i compiladors, la presència de ctest i cpack utilitats per definir scripts de prova i crear paquets, i la utilitat cmake -gui per a la configuració interactiva dels paràmetres de compilació.
Principals canvis:
- S'ha trencat la compatibilitat amb les versions de CMake anteriors a la 3.5. Quan s'enllaça amb versions no compatibles, cmake_minimum_required() i cmake_policy() ara generaran un error.
- S'ha afegit la variable d'entorn "CMAKE_POLICY_VERSION_MINIMUM" per anul·lar la versió mínima de CMake la funcionalitat de la qual és necessària per crear un projecte. La variable afegida us permet fer sense canviar les crides cmake_minimum_required(VERSION) i cmake_policy(VERSION) al propi projecte, per exemple, per configurar la política de versió en projectes que no proporcionen aquesta característica.
- A l'expressió del generador "$ " ha afegit l'operació "NATIVE_PATH" per convertir una ruta de fitxer de la representació CMake (que sempre utilitza "/" per separar directoris) a una ruta de sistema (els sistemes tipus Unix utilitzen "/" i Windows — «\»).
- A la plataforma macOS Quan s'utilitzen generadors de scripts de compilació basats en Ninja i generadors de Makefile, si hi ha un compilador al directori /usr/bin, ara es deixa tal com està, sense estar vinculat al compilador a Xcode. Quan es compila per a la plataforma macOS El comportament per defecte de seleccionar l'SDK i passar el senyalador "-isysroot" al compilador s'ha deixat d'utilitzar (ara l'SDK el selecciona el mateix compilador, no CMake).
- S'ha afegit la propietat LINK_WARNING_AS_ERROR, que farà que els avisos de l'enllaçador es tracten com a errors. Per desactivar l'efecte d'aquesta propietat, s'ha afegit l'opció de línia d'ordres "--link-no-warning-as-error".
- La utilitat cmake té una opció "--project-file" per especificar un nom alternatiu per al fitxer CMakeLists.txt.
- El generador CPack ara té la capacitat de crear arxius tar sense comprimir.
- L'ordre target_link_libraries() i les variables CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* s'han actualitzat per admetre el prefix "LINKER:".
- S'han afegit noves variables:
- 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.
- S'han afegit propietats noves: DEBUGGER_WORKING_DIRECTORY i VS_SOLUTION_ITEMS (per adjuntar fitxers a .sln per a Visual Studio).
- Es proporciona la generació de conjunts CMake preparats per a SunOS per a arquitectures sparc64 i x86_64.
Font: opennet.ru
