Die Veröffentlichung des plattformĂŒbergreifenden Open Source Build-Script-Generators CMake 4.0.0 wird als Alternative zu Autotools vorgestellt und wird in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet. Der CMake-Code ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.
CMake zeichnet sich durch die Bereitstellung einer einfachen Skriptsprache aus, Möglichkeiten zur Erweiterung ĂŒber Module, UnterstĂŒtzung von Caching, Vorhandensein von Werkzeugen fĂŒr Cross-Compilation, UnterstĂŒtzung der Generierung von Build-Dateien fĂŒr eine Vielzahl von Build-Systemen und Compilern, sowie ĂŒber die Tools ctest und cpack zur Definition von Test- und Paketbuild-Skripten, und dem cmake-gui-Tool zur interaktiven Anpassung der Build-Parameter.
HauptÀnderungen:
- Die UnterstĂŒtzung fĂŒr CMake-Versionen vor 3.5 wurde eingestellt. Bei der Bindung an nicht unterstĂŒtzte Versionen werden nun Fehler in den Funktionen cmake_minimum_required() und cmake_policy() ausgegeben.
- Eine Umgebungsvariable âCMAKE_POLICY_VERSION_MINIMUMâ wurde hinzugefĂŒgt, um die minimale CMake-Version zu ĂŒberschreiben, die zur Erstellung des Projekts erforderlich ist. Diese neue Variable ermöglicht es, die Aufrufe von cmake_minimum_required(VERSION) und cmake_policy(VERSION) im Projekt selbst zu umgehen, z.B. zur Anpassung der Versionsrichtlinien in Projekten, die diese Möglichkeit nicht vorsehen.
- Im Generatorausdruck â$â wurde die Operation âNATIVE_PATHâ hinzugefĂŒgt, um einen Dateipfad von der CMake-Darstellung (wo zur Trennung von Verzeichnissen immer â/â verwendet wird) in den Systempfad (in Unix-Ă€hnlichen Systemen wird â/â und in Windows â\â verwendet) umzuwandeln.
- Auf der macOS-Plattform wird beim Einsatz von Build-Script-Generatoren auf Basis von Ninja und Makefile, wenn sich ein Compiler im Verzeichnis â/usr/binâ befindet, dieser unverĂ€ndert gelassen, ohne an den Compiler in Xcode gebunden zu werden. Bei der Erstellung fĂŒr die Plattform macOS wird standardmĂ€Ăig die Auswahl des SDK und die Ăbergabe des Flags â-isysrootâ an den Compiler eingestellt (das SDK wird jetzt vom Compiler selbst ausgewĂ€hlt und nicht von CMake).
- Die Eigenschaft LINK_WARNING_AS_ERROR wurde hinzugefĂŒgt, bei der Linker-Warnungen als Fehler behandelt werden. Um diese Eigenschaft zu deaktivieren, wurde die Befehlszeilenoption ââlink-no-warning-as-errorâ hinzugefĂŒgt.
- Der cmake-Befehl enthĂ€lt jetzt die Option ââproject-fileâ, um einen alternativen Namen fĂŒr die CMakeLists.txt-Datei festzulegen.
- Der CPack-Generator unterstĂŒtzt jetzt die Erstellung von unkomprimierten Tar-Archiven.
- Der Befehl target_link_libraries() sowie die Variablen CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* unterstĂŒtzen jetzt das PrĂ€fix âLINKER:â.
- Neue Variablen wurden hinzugefĂŒgt:
- 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.
- Neue Eigenschaften wurden hinzugefĂŒgt: DEBUGGER_WORKING_DIRECTORY und VS_SOLUTION_ITEMS (zum AnhĂ€ngen von Dateien an .sln fĂŒr Visual Studio).
- Bereitstellung von fertig konfigurierten CMake-Bauten fĂŒr SunOS fĂŒr die Architekturen sparc64 und x86_64.
Quelle: opennet.ru
