Verze sestavovacího systému CMake 3.16

Představení víceplatformní otevřený generátor skriptů sestavení CMake 3.16, fungující jako alternativa k Autotools a používaný v projektech jako KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender. Kód CMake je napsán v jazyce C++ a je distribuován pod licencí BSD.

CMake se vyznačuje poskytováním jednoduchého skriptovacího jazyka, prostředky pro rozšíření funkcionality prostřednictvím modulů, minimálním počtem závislostí (není závislý na M4, Perlu nebo Pythonu), podporou ukládání do mezipaměti, existencí nástrojů pro kross-kompilaci, podporou generování souborů sestavení pro široké spektrum systémů sestavení a kompilátorů, dostupností nástrojů ctest a cpack pro definici testovacích a balicí skriptů a nástrojem cmake-gui pro interaktivní nastavení parametrů sestavení.

Hlavní vylepšení:

  • Byla přidána podpora pro jazyky Objective C («OBJC») a Objective
    C++ («OBJCXX»), které mohou být aktivovány přes příkazy project() a enable_language(), přičemž kód v souborech «.m» «.mm» bude kompilován jako kód v Objective C a Objective C++, a ne jako kód v C++, jak tomu bylo dříve;
  • Byla přidána podpora pro kompilátor Clang na platformě Solaris;
  • Byly přidány nové parametry příkazového řádku: «cmake -E true|false» pro výstup návratových kódů 0 a 1; «cmake —trace-redirect=» pro přesměrování informací o trasování do souboru, místo
    «stderr»; příkaz «cmake —loglevel» byl přejmenován na «—log-level» pro sladění s názvy ostatních příkazů;
  • Byl přidán příkaz «target_precompile_headers()» pro určení seznamu hlavičkových souborů používaných při předkompilaci (zkracuje dobu sestavení);
  • Bylo přidáno vlastnost «UNITY_BUILD», které aktivuje dávkový režim zpracování zdrojových souborů v generátorech pro zrychlení sestavení;
  • Byly přidány příkazy «find_file()», «find_library()», «find_path()»,
    «find_package()» a «find_program()» pro vyhledávání souborů, knihoven, cest, balíčků a spustitelných souborů dle proměnných definujících vyhledávací cesty různých kategorií souborů.
    Pro správu základních cest pro vyhledávání se používají proměnné «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» a «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Do příkazu «file()» byl přidán režim «file(GET_RUNTIME_DEPENDENCIES)», který umožňuje rekurzivně získat seznam knihoven zapojených při dynamickém propojení spustitelného souboru nebo knihovny. Tento režim nahradil příkaz GetPrerequisites(), který je nyní deklarován jako zastaralý;
  • V příkazu «ctest(1)» byla implementována možnost serializace testů na základě zdrojů potřebných pro každý test;
  • Byla deklarována jako zastaralá proměnná «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», místo které by měla být použita «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Byla vylepšena podpora platformy AIX. Při použití vlastnosti „ENABLE_EXPORTS“ se nyní kromě spustitelného souboru vytváří také soubor importu pro linker, který se ukládá s příponou „.imp“. V pluginech, které jsou vytvářeny pomocí volání „add_library()“ s volbou „MODULE“, může být tento soubor použit při linkování s použitím příkazu „target_link_libraries()“. Runtime linkování v AIX je ve výchozím nastavení zakázáno, protože CMake nyní poskytuje všechny potřebné informace o symbolech pro linkování během načítání. Pro použití runtime linkování dynamických knihoven nebo načítaných modulů je třeba explicitně zadat volby „-Wl,-G“ do seznamu spouštěcích flagů linkeru, které jsou určeny prostřednictvím proměnných „CMAKE_SHARED_LINKER_FLAGS“ a „CMAKE_MODULE_LINKER_FLAGS“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster