Wydanie systemu kompilacji CMake 3.17.0

Przesłane przez wydanie wieloplatformowego generatora skryptów o otwartej kompilacji CMake 3.17, który działa jako alternatywa dla Autotools i jest używany w projektach takich jak KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake jest napisany w C++ i rozpowszechniany na licencji BSD.

CMake wyróżnia się zapewnianiem prostego języka skryptowego, sposobem rozszerzania funkcjonalności poprzez moduły, minimalną liczbą zależności (brak wiązania z M4, Perlem lub Pythonem), obsługą buforowania, obecnością narzędzi do kompilacji krzyżowej, obsługą generowania kompilacji pliki dla szerokiej gamy systemów kompilacji i kompilatorów, obecność narzędzi ctest i cpack do definiowania skryptów testowych i budowania pakietów, narzędzie cmake-gui do interaktywnego ustawiania parametrów kompilacji.

Głównym ulepszenia:

  • Dodano nowy generator skryptów asemblera oparty na zestawie narzędzi Ninja - „Ninja Multi-Config”, który różni się od starego generatora możliwością przetwarzania kilku konfiguracji złożenia jednocześnie.
  • W generatorze skryptów zestawu dla Visual Studio pojawił się możliwość zdefiniowania plików źródłowych powiązanych z każdą konfiguracją (źródła per-config).
  • Do narzędzi ustawiania parametrów kompilatora (Cuda_std_03”, „cuda_std_14” itp.) dodano możliwość ustawiania metaparametrów dla CUDA („cuda_std_XNUMX”, „cuda_std_XNUMX” itp.) (Cuda_std_XNUMX” itp.).
  • Dodano zmienne „CMAKE_CUDA_RUNTIME_LIBRARY” i „CUDA_RUNTIME_LIBRARY”, aby wybrać typ bibliotek wykonawczych podczas korzystania z CUDA.
  • Dodano moduł „FindCUDAToolkit” umożliwiający określenie zestawu narzędzi CUDA dostępnego w systemie bez włączania języka CUDA.
  • Dodano polecenie „--debug-find” do cmake w celu wyprowadzenia dodatkowej czytelnej diagnostyki podczas wykonywania operacji wyszukiwania. W podobnych celach dodana została zmienna CMAKE_FIND_DEBUG_MODE.
  • Dodano obsługę wyszukiwania narzędzi CURL przy użyciu plików konfiguracyjnych „CURLConfig.cmake” generowanych przez cmake do modułu „FindCURL”. Aby wyłączyć to zachowanie, dostępna jest zmienna CURL_NO_CURL_CMAKE.
  • Moduł FindPython dodał możliwość wyszukiwania komponentów Pythona w środowiskach wirtualnych zarządzanych za pomocą „conda”.
  • Narzędzie ctest dodało opcje „--no-tests=[error|ignore]” umożliwiające zdefiniowanie zachowania w przypadku braku testów oraz „--repeat” umożliwiające ustawienie warunków ponownego uruchomienia testów (do momentu zaliczenia, po przerwie).
  • Właściwości celu zespołu INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS są teraz przenoszone pomiędzy wewnętrznymi zależnościami bibliotek składanych statycznie.
  • Podczas korzystania z zestawu narzędzi MinGW wyszukiwanie plików DLL za pomocą polecenia find_library jest domyślnie wyłączone (zamiast tego domyślną próbą jest import bibliotek „.dll.a”).
  • Logika wyboru narzędzia ninja w generatorze Ninja nie zależy teraz od nazwy pliku wykonywalnego - używane jest pierwsze narzędzie ninja-build, ninja lub samu znalezione w ścieżkach zdefiniowanych przez zmienną środowiskową PATH.
  • Dodano polecenie „-E rm” do cmake, którego można użyć do usunięcia plików i katalogów zamiast oddzielnych poleceń „-E usuń” i „-E usuń_katalog”.

Źródło: opennet.ru

Dodaj komentarz