Wydanie systemu budowy CMake 3.17.0

Przedstawiony wydanie wieloplatformowego otwartego generatora skryptów kompilacji CMake 3.17, który pełni rolę alternatywy 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.

Podstawowe ulepszenia:

  • Dodano nowe generator skryptów kompilacji oparty na narzędziu Ninja — „Ninja Multi-Config”, różniący się od starego generatora możliwością przetwarzania jednocześnie kilku konfiguracji budowy.
  • W generatorze skryptów kompilacji dla Visual Studio pojawiła się możliwość określenia plików źródłowych powiązanych z każdą konfiguracją (per-config sources).
  • W narzędziach do konfiguracji parametrów kompilacji (Compile Features) dodano możliwość określenia metaparametrów dla CUDA („cuda_std_03”, „cuda_std_14” itd.).
  • Dodano zmienne „CMAKE_CUDA_RUNTIME_LIBRARY” i „CUDA_RUNTIME_LIBRARY” do wyboru typu bibliotek runtime przy użyciu CUDA.
  • Dodano moduł „FindCUDAToolkit” do identyfikacji dostępnego w systemie narzędzia CUDA bez włączania języka CUDA.
  • Do narzędzia cmake dodano polecenie „—debug-find” do wyświetlania dodatkowej czytelnej diagnostyki podczas operacji wyszukiwania. Dla podobnych celów dodano zmienną CMAKE_FIND_DEBUG_MODE.
  • W module „FindCURL” dodano wsparcie dla wyszukiwania narzędzia CURL za pomocą generowanych plików konfiguracyjnych cmake „CURLConfig.cmake”. Aby dezaktywować to zachowanie, przewidziano zmienną CURL_NO_CURL_CMAKE.
  • W module FindPython dodano możliwość wyszukiwania komponentów Pythona w środowiskach wirtualnych zarządzanych przez „conda”.
  • Do narzędzia ctest dodano opcje „—no-tests=[error|ignore]” do określenia zachowania w przypadku braku testów oraz „—repeat” do określenia warunków ponownego uruchamiania testów (until-pass, after-timeout).
  • Zapewnia przenoszenie właściwości celu budowy INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS w liczbie wewnętrznych zależności statycznie budowanych bibliotek.
  • Przy użyciu narzędzia MinGW domyślnie wyłączono wyszukiwanie plików DLL poleceniem find_library (zamiast tego domyślnie próbuje się importować biblioteki „.dll.a”).
  • Logika wyboru narzędzia ninja w generatorze Ninja nie zależy już od nazwy pliku wykonywalnego — używana jest pierwsza dostępna narzędzie ninja-build, ninja lub samu, znalezione w katalogach określonych przez zmienną środowiskową PATH.
  • W narzędziu cmake dodano polecenie „-E rm”, które można używać do usunięcia plików i katalogów zamiast oddzielnych poleceń „-E remove” i „-E remove_directory”.

Ź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