Nowa aktualizacja generatora skryptów CMake 3.15 została wydana

cmake

Kilka dni temu Udostępniono wieloplatformowy generator skryptów 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.

CMake to wieloplatformowe narzędzie do generowania lub automatyzacji kodu. Nazwa jest skrótem od „cross platform make” (make cross platform, poza użyciem „make” w nazwie, CMake to oddzielny zestaw i wyższy poziom niż wspólny system make systemu Unix, będąc podobnym do autotools.

O CMake

CMake wyróżnia się prostym językiem skryptowym, narzędzia do rozszerzania funkcjonalności na moduły, minimalna liczba zależności (brak powiązań z M4, Perl lub Python), obsługa buforowania, dostępność narzędzi do kompilacji krzyżowej, obsługa generowania plików assemblerów dla szerokiego zakresu systemów kompilatorów i kompilatorów.

Narzędzia ctest i cpack do definiowania scenariuszy testowych i tworzenia pakietów, z narzędziem cmake-gui do interaktywnej konfiguracji parametrów kompilacji.

CMake służy do sterowania procesem kompilacji oprogramowania przy użyciu prostych i niezależnych plików konfiguracyjnych platformy. Cmake generuje natywne pliki Makefile i obszary robocze, których można używać w żądanym środowisku programistycznym.

Jest on porównywalny z systemem kompilacji Unix GNU, ponieważ proces jest kontrolowany przez pliki konfiguracyjne, w przypadku CMake o nazwie CMakeLists.txt.

W przeciwieństwie do systemu budowania GNU, który jest ograniczone do platform Unix, CMake obsługuje generowanie plików dla różnych systemów operacyjnych, co ułatwia konserwację i eliminuje potrzebę posiadania wielu zestawów plików dla każdej platformy.

Proces budowania jest kontrolowany przez utworzenie co najmniej jednego pliku CMakeLists.txt w każdym katalogu (w tym w podkatalogach).

Kod CMake jest napisany w C ++ i jest rozpowszechniany na licencji BSD.

Główne nowe funkcje CMake 3.15

Ta nowa wersja podkreślone pojawieniem się początkowej obsługi generatora dla języka Swift Opracowany przez firmę Apple został dodany do generatora skryptów montażowych Ninja Toolkit.

Poza tym, pojawia się również wsparcie dla opcji kompilatora Clang dla Windows, który jest zbudowany z ABI MSVC, ale używa opcji wiersza poleceń w stylu GNU.

Twórcy podkreślają, że zmienne CMAKE_MSVC_RUNTIME_LIBRARY y MSVC_RUNTIME_LIBRARY są dodawane w celu wybrania bibliotek wykonawczych używanych przez kompilatory ABI MSVC (MS VisualStudio).

Dla kompilatorów takich jak MSVCW CMAKE__FLAGSDomyślnie lista ostrzegawczych flag kontrolnych, takich jak „/ W3”, jest zatrzymana.

Spośród innych ulepszeń, które zostały podkreślone w ogłoszeniu o wydaniu tej nowej wersji, znajdujemy następujące:

  • Dodano wyrażenie generujące 'COMPILE_LANG_AND_ID: »Aby zdefiniować opcje kompilatora dla plików docelowych, które używają zmiennych CMAKE__COMPILER_ID y LANGUAGE dla każdego pliku kodu
  • Wyrażenia generatora C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID y PLATFORM_ID dodać obsługę dopasowywania wartości do listy, elementy oddzielone przecinkami
  • Zmienna została dodana CMAKE_FIND_PACKAGE_PREFER_CONFIG, w którym wywołanie find_package () będzie najpierw szukać pliku konfiguracyjnego pakietu, nawet jeśli moduł wyszukiwania jest dostępny
  • W przypadku bibliotek interfejsów dodano obsługę ustawiania właściwości PUBLIC_HEADER y PRIVATE_HEADER, którego nagłówki można skonfigurować poleceniem instalacji (TARGETS) przekazującym argumenty PUBLIC_HEADER y PRIVATE_HEADER
  • Zmienna została dodana CMAKE_VS_JUST_MY_CODE_DEBUGGING i obiekt docelowy VS_JUST_MY_CODE_DEBUGGING aby włączyć tryb „Tylko mój kod” w debugerze programu Visual Studio podczas kompilowania przy użyciu MSVC cl 19.05 i nowszych wersji.
  • Przerobiono moduł FindBoost, który jest teraz w pełni opracowywany w trybach konfiguracji i modułów z obecnością innych modułów wyszukiwania
  • Do polecenia message () dodano obsługę typów NOTICE, VERBOSE, DEBUG i TRACE
  • Polecenie „export (PACKAGE)” teraz nic nie robi, dopóki nie zostanie jawnie włączone przez zmienną CMAKE_EXPORT_PACKAGE_REGISTRY.

Jeśli chcesz dowiedzieć się więcej na ten temat, skonsultuj się poniższy link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.