Wydanie systemu kompilacji CMake 3.18

Przesłane przez wydanie wieloplatformowego generatora skryptów o otwartej kompilacji CMake 3.18, 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:

  • Język CUDA można zbudować przy użyciu Clang na platformach innych niż Windows. Oddzielna kompilacja CUDA nie jest jeszcze obsługiwana na żadnej platformie.
  • Dodano obsługę profilowania skryptów CMake przy użyciu opcji „--profiling-output” i „--profiling-format”.
  • Polecenia add_library() i add_executable() obsługują teraz tworzenie aliasów docelowych, które odnoszą się do nieglobalnych importowanych celów.
  • Dodano polecenie cmake_language() do metaoperacji na poleceniach skryptowych lub wbudowanych.
  • Dodano podkomendę file(CONFIGURE), o funkcjonalności podobnej do konfiguracji_pliku(), ale przekazującą zawartość jako ciąg znaków, a nie jako odwołanie do pliku.
  • Do poleceń find_program(), find_library(), find_path() i find_file() dodano opcję WYMAGANA, aby zatrzymać przetwarzanie z powodu błędu, jeśli nic nie zostanie znalezione.
  • Dodano zmienną „CMAKE_CUDA_ARCHITECTURES” wskazującą architekturę CUDA (ustawianą automatycznie, jeśli zmienna „CMAKE_CUDA_COMPILER_ID” jest ustawiona na „NVIDIA”).
  • Dodano właściwość „UNITY_BUILD_MODE” służącą do wyboru algorytmu grupowania plików źródłowych dołączanych do generatorów (BATCH, GROUP).
  • Dodano moduł CheckLinkerFlag umożliwiający sprawdzenie poprawności flag linków.
  • Dodano wyrażenia generatora $ , $ , $ i $ .
  • Do narzędzia ctest dodano zmienną CTEST_RESOURCE_SPEC_FILE w celu określenia pliku specyfikacji zasobów.

Źródło: opennet.ru

Dodaj komentarz