Byl vydán multiplatformní open-source generátor skriptů pro sestavení CMake 4.0.0, který slouží jako alternativa k Autotools a je využíván v projektech jako KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender. Kód CMake je napsán v jazyce C++ a je distribuován pod licencí BSD.
CMake je pozoruhodný díky jednoduchému skriptovacímu jazyku, možnostem rozšíření funkcionality prostřednictvím modulů, podpoře cachování, přítomnosti nástrojů pro kros-kompilaci, podpoře generování souborů pro široké spektrum systémů sestavení a kompilátorů, nástrojům ctest a cpack pro definici testovacích a balíkových skriptů, a utilitě cmake-gui pro interaktivní nastavení parametrů sestavení.
Hlavní změny:
- Byla ukončena podpora verzí CMake před verzí 3.5. Při vazbě na nepodporované verze ve funkcích cmake_minimum_required() a cmake_policy() nyní dojde k vypsání chyby.
- Byla přidána proměnná prostředí „CMAKE_POLICY_VERSION_MINIMUM“ pro přepsání minimální verze CMake, jejíž funkcionalita je nezbytná pro sestavení projektu. Přidaná proměnná umožňuje obejít nutnost změny volání cmake_minimum_required(VERSION) a cmake_policy(VERSION) v samotném projektu, například pro nastavení politik verzí v projektech, které tuto možnost nelze zohlednit.
- Do výrazu generátoru „$“ byla přidána operace „NATIVE_PATH“, která převádí cestu k souboru z formátu CMake (pro oddělení adresářů se vždy používá „/“) na systémovou cestu (v Unixových systémech je použito „/“, zatímco ve Windows „\“).
- Na platformě macOS při použití generátorů skriptů pro sestavení založených na nástrojích Ninja a Makefile, pokud v adresáři „/usr/bin“ existuje kompilátor, bude nyní ponechán bez vazby na kompilátor v Xcode. Při sestavování pro platformu macOS byl standardně ukončen výběr SDK a předání kompilátoru příznaku „-isysroot“ (SDK nyní vybere sám kompilátor, nikoli CMake).
- Byl přidán atribut LINK_WARNING_AS_ERROR, při kterém budou varování linkeru považována za chyby. Pro deaktivaci této vlastnosti byla přidána volba příkazového řádku „—link-no-warning-as-error“.
- Do utility cmake byla přidána volba „—project-file“ pro zadání alternativního názvu souboru CMakeLists.txt.
- Do generátoru CPack byla přidána možnost vytváření nekomprimovaných tar-archivů.
- Do funkce target_link_libraries() a proměnných CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* byla přidána podpora prefixu „LINKER:“.
- Byly přidány nové proměnné:
- 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.
- Byly přidány nové vlastnosti: DEBUGGER_WORKING_DIRECTORY a VS_SOLUTION_ITEMS (pro připojení souborů k .sln pro Visual Studio).
- Bylo zajištěno vytváření hotových sestavení CMake pro SunOS pro architektury sparc64 a x86_64.
Zdroj: opennet.ru
