Wydano wydanie wieloplatformowego, otwartego generatora skryptów build CMake 4.0.0, stanowiącego alternatywę dla Autotools i używanego w takich projektach jak KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake napisany jest w języku C++ i rozpowszechniany na licencji BSD.
CMake wyróżnia się oferowaniem prostego języka skryptów, funkcjonalnością rozszerzenia poprzez moduły, wsparciem dla cache, narzędziami do krzyżowej kompilacji, generowaniem plików kompilacyjnych dla szerokiego zakresu systemów budowlanych i kompilatorów, a także narzędziami ctest i cpack do definiowania skryptów testowych i budowania pakietów, oraz narzędziem cmake-gui do interaktywnego konfigurowania parametrów kompilacji.
Główne zmiany:
- Wsparcie dla wersji CMake przed wydaniem 3.5 zostało zakończone. Przy powiązaniu z nieobsługiwanymi wersjami w funkcjach cmake_minimum_required() i cmake_policy() teraz pojawi się błąd.
- Dodano zmienną środowiskową "CMAKE_POLICY_VERSION_MINIMUM" do nadpisania minimalnej wersji CMake, której funkcjonalność jest wymagana do budowy projektu. Dodana zmienna umożliwia ominięcie konieczności zmiany wywołań cmake_minimum_required(VERSION) i cmake_policy(VERSION) w samym projekcie, na przykład do konfiguracji polityki wersji w projektach, które nie przewidują takiej możliwości.
- Do wyrażenia generatora "$$" dodano operację "NATIVE_PATH" do konwersji ścieżki plikowej z reprezentacji CMake (gdzie zawsze do rozdzielania katalogów używa się "/") na ścieżkę systemową (w systemach Unix używa się "/", a w Windows - "\").
- Na platformie macOS, przy użyciu generatorów skryptów build opartych na narzędziu Ninja i generatorach Makefile, jeśli w katalogu "/usr/bin" jest obecny kompilator, to pozostaje on bez zmian, bez powiązania z kompilatorem w Xcode. Przy budowaniu na platformie macOS domyślnie zaprzestano wyboru SDK i przekazywania kompilatorowi flagi "-isysroot" (SDK teraz wybiera sam kompilator, a nie CMake).
- Dodano właściwość LINK_WARNING_AS_ERROR, która traktuje ostrzeżenia linkera jako błędy. Aby wyłączyć działanie tej właściwości, dodano opcję wiersza poleceń "—link-no-warning-as-error".
- Do narzędzia cmake dodano opcję "—project-file" do określenia alternatywnej nazwy pliku CMakeLists.txt.
- Do generatora CPack dodano możliwość tworzenia nieskompresowanych archiwów tar.
- Do komendy target_link_libraries() oraz zmiennych CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* dodano wsparcie dla prefiksu "LINKER:".
- Dodano nowe zmienne:
- 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.
- Dodano nowe właściwości: DEBUGGER_WORKING_DIRECTORY oraz VS_SOLUTION_ITEMS (do dołączania plików do .sln dla Visual Studio).
- Zapewniono gotowe zestawy CMake dla SunOS dla architektur sparc64 i x86_64.
Źródło: opennet.ru
