Wydanie systemu budowy CMake 3.16

Przedstawiony wydanie wieloplatformowego otwartego generatora skryptów kompilacji CMake 3.16, 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 wsparcie dla języków Objective C („OBJC”) i Objective
    C++ („OBJCXX”), które można aktywować poprzez polecenia project() i enable_language(), dzięki czemu kod w plikach „.m” i „.mm” będzie kompilowany jako kod w Objective C i Objective C++, a nie jako kod w C++, jak to miało miejsce wcześniej;
  • Dodano wsparcie dla kompilatora Clang na platformie Solaris;
  • Dodano nowe parametry wiersza poleceń: „cmake -E true|false” do wyjścia kodów zwrotnych 0 i 1; „cmake —trace-redirect=” do przekierowania informacji o śledzeniu do pliku, zamiast
    „stderr”; polecenie „cmake —loglevel” zmieniono na „—log-level” celem dostosowania go do nazewnictwa innych poleceń;
  • Dodano polecenie „target_precompile_headers()” do wymienienia listy plików nagłówkowych używanych przy prekompilacji (skraca czas kompilacji);
  • Dodano właściwość „UNITY_BUILD”, która aktywuje tryb przetwarzania plików źródłowych w paczkach w generatorach w celu przyspieszenia kompilacji;
  • Dodano polecenia „find_file()”, „find_library()”, „find_path()”,
    „find_package()” i „find_program()” do wyszukiwania plików, bibliotek, ścieżek, pakietów i plików wykonawczych zgodnie z zmiennymi definiującymi ścieżki wyszukiwania różnych kategorii plików.
    Do zarządzania podstawowymi ścieżkami wyszukiwania używa się zmiennych „CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH”, „CMAKE_FIND_USE_CMAKE_PATH”, „CMAKE_FIND_USE_CMAKE_SYSTEM_PATH”, „CMAKE_FIND_USE_PACKAGE_ROOT_PATH”, „CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH” oraz „CMAKE_FIND_USE_PACKAGE_REGISTRY”;
  • Do zespołu „file()” dodano tryb „file(GET_RUNTIME_DEPENDENCIES)”, umożliwiający rekurencyjne wydobycie listy bibliotek używanych podczas dynamicznego powiązania pliku wykonywalnego lub biblioteki. Tryb zastępuje polecenie GetPrerequisites(), które teraz zostało oznaczone jako przestarzałe;
  • W poleceniu „ctest(1)” wprowadzono możliwość serializacji testów, opierając się na zasobach wymaganych dla każdego testu;
  • Została uznana za przestarzałą zmienna „CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY”, której należy używać zamiast „CMAKE_FIND_USE_PACKAGE_REGISTRY”;
  • Ulepszona obsługa platformy AIX. Przy użyciu właściwości „ENABLE_EXPORTS”, oprócz pliku wykonywalnego, teraz generowany jest również plik importu dla linkera, zapisywany z rozszerzeniem „.imp”. Wtyczki tworzone za pomocą wywołania „add_library()” z opcją „MODULE” mogą wykorzystywać ten plik podczas linkowania za pomocą polecenia „target_link_libraries()”. Linkowanie w czasie wykonywania w AIX jest domyślnie wyłączone, ponieważ CMake dostarcza teraz wszelkie potrzebne informacje o symbolach do linkowania podczas ładowania. Aby zastosować linkowanie w czasie wykonywania dla dynamicznych bibliotek lub modułów ładowanych, należy jawnie określić opcje „-Wl,-G” na liście flag rozpoczęcia linkera, definiowanej przez zmienne „CMAKE_SHARED_LINKER_FLAGS” i „CMAKE_MODULE_LINKER_FLAGS”.

Ź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