Wydanie systemu budowania CMake 3.22

Została wydana wersja wieloplatformowego otwartego generatora skryptów budowy CMake 3.22, który jest alternatywą dla Autotools i jest używany w takich projektach jak KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake jest napisany w języku C++ i jest udostępniany na licencji BSD.

CMake wyróżnia się tym, że oferuje prosty język skryptowy, możliwości rozszerzenia funkcjonalności poprzez moduły, minimalną liczbę zależności (brak powiązań z M4, Perlem czy Pythonem), wsparcie dla pamięci podręcznej, dostępność narzędzi do kompilacji krzyżowej, generację plików kompilacji dla szerokiej gamy systemów kompilacji i kompilatorów, oraz narzędzi ctest i cpack do definiowania skryptów testowych i pakietów, a także narzędzię cmake-gui do interaktywnej konfiguracji parametrów kompilacji.

Zaimplementowano wywołania systemowe waitid (oczekiwanie na zmianę stanu procesu), pinsyscall (do przekazywania informacji o punkcie wejścia execve w celu ochrony przed exploitami ROP), getthrname i setthrname (uzyskiwanie i ustalanie nazwy wątku).

  • W narzędziach do konfigurowania parametrów kompilatora (Compile Features) dodano możliwość włączania i wyłączania rozszerzeń kompilatora bez określania poziomu wsparcia standardu, a także wykluczono ustawienie zbędnych flag dotyczących poziomu standardu języka, jeśli wybrane ustawienia są zgodne z ustawieniami domyślnymi kompilatora.
  • W poleceniu cmake_host_system_information() dodano możliwość zapytania o identyfikator systemu operacyjnego, przechowywany w pliku /etc/os-release.
  • Dodano zmienne środowiskowe CMAKE_BUILD_TYPE i CMAKE_CONFIGURATION_TYPES, za pomocą których można ustawić wartość domyślną tych zmiennych CMake.
  • Dodano zmienną "CMAKE_REQUIRE_FIND_PACKAGE_", która przekształca wywołanie funkcji find_package() w celu wykrycia określonego pakietu w obowiązkowe.
  • Dodano zmienną środowiskową "CMAKE_INSTALL_MODE" do ustawienia symbolicznych linków zamiast kopiowania plików przy wywołaniu "install()".
  • Dodano flagę "CMAKE__LINK_WHAT_YOU_USE_FLAG" oraz zmienną "CMAKE_LINK_WHAT_YOU_USE_CHECK" do ustawiania i sprawdzania flag linkerów.
  • W module FetchContent zapewniono przekazywanie ustawionych zmiennych "CMAKE_TLS_VERIFY", "CMAKE_TLS_CAINFO", "CMAKE_NETRC" i "CMAKE_NETRC_FILE" do skryptu budowy zewnętrznych projektów (wcześniej te parametry były ignorowane).
  • W dostarczanym przez moduł "CMakeDependentOption" makrosie "cmake_dependent_option()" dodano pełne wsparcie dla składni wyrażeń warunkowych.
  • Moduły "FindJasper" i "FindMatlab" teraz dostarczają cele importowane.
  • W właściwości "VS_SETTINGS" zaimplementowano wsparcie dla wszystkich typów plików ze źródłami.
  • Został oznaczony jako przestarzały i zostanie usunięty w jednej z nadchodzących wersji generator "Visual Studio 10 2010".

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster