Wydanie systemu kompilacji CMake 3.15

Odbyła się wydanie wieloplatformowego generatora skryptów o otwartej kompilacji CMake 3.15, 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:

  • Do generatora skryptów kompilacji opartego na Ninja dodano obsługę języka początkowego Szybki, opracowany przez Apple;
  • Dodano obsługę wariantu kompilatora Clang dla systemu Windows, który kompiluje się za pomocą MSVC ABI, ale używa opcji wiersza poleceń w stylu GNU;
  • Dodano zmienne CMAKE_MSVC_RUNTIME_LIBRARY i MSVC_RUNTIME_LIBRARY do wyboru bibliotek wykonawczych używanych przez kompilatory oparte na MSVC ABI (MS Visual Studio);
  • W przypadku kompilatorów takich jak MSVC, CMAKE__FLAGS domyślnie przestaje wyświetlać ostrzegawcze flagi kontrolne, takie jak „/W3”;
  • Dodano wyrażenie generatora „COMPILE_LANG_AND_ID:” w celu zdefiniowania opcji kompilatora dla plików docelowych, używając zmiennych CMAKE__COMPILER_ID i LANGUAGE dla każdego pliku kodu;
  • W wyrażeniach generatora C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID i PLATFORM_ID dodały obsługę dopasowywania pojedynczej wartości do listy, której elementy są oddzielone przecinkiem;

  • Dodano zmienną CMAKE_FIND_PACKAGE_PREFER_CONFIG, aby wywołanie funkcji find_package() najpierw wyszukało plik konfiguracyjny pakietu, nawet jeśli finder jest dostępny;
  • Dla bibliotek interfejsów dodano obsługę ustawiania właściwości PUBLIC_HEADER i PRIVATE_HEADER, za pomocą których można ustawić nagłówki za pomocą komendy install(TARGETS) poprzez przekazanie argumentów PUBLIC_HEADER i PRIVATE_HEADER;
  • Dodano zmienną CMAKE_VS_JUST_MY_CODE_DEBUGGING i właściwość docelową VS_JUST_MY_CODE_DEBUGGING, aby włączyć tryb „Tylko mój kod” w debugerze Visual Studio podczas kompilacji przy użyciu MSVC cl 19.05 i nowszych wersji;
  • Moduł FindBoost został przeprojektowany i działa teraz bardziej całościowo w trybach konfiguracji i modułu w obecności innych modułów wyszukiwania;
  • Polecenie Message() obsługuje teraz typy NOTICE, VERBOSE,
    DEBUGOWANIE i ŚLEDZENIE;

  • Polecenie „export(PACKAGE)” nie robi teraz nic, chyba że zostanie jawnie włączone za pomocą zmiennej CMAKE_EXPORT_PACKAGE_REGISTRY.

Źródło: opennet.ru

Dodaj komentarz