Vydání systému sestavení CMake 3.16

Předložené vydání multiplatformního open build generátoru skriptů CMake 3.16, který funguje jako alternativa k Autotools a používá se v projektech jako KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender. Kód CMake je napsán v C++ a distribuován pod licencí BSD.

CMake je pozoruhodný tím, že poskytuje jednoduchý skriptovací jazyk, prostředek k rozšíření funkčnosti prostřednictvím modulů, minimální počet závislostí (žádná vazba na M4, Perl nebo Python), podporu ukládání do mezipaměti, přítomnost nástrojů pro křížovou kompilaci, podporu pro generování sestavení soubory pro širokou škálu sestavovacích systémů a kompilátorů, nástroje prezence ctest a cpack pro definování testovacích skriptů a sestavovacích balíčků, nástroj cmake-gui pro interaktivní nastavení parametrů sestavení.

hlavní vylepšení:

  • Přidána podpora pro Objective C (“OBJC”) a Objective jazyky
    C++ ("OBJCXX"), který lze povolit pomocí příkazů project() a enable_language() a poté se kód v souborech ".m" ".mm" zkompiluje jako kód Objective C a Objective C++, nikoli jako C++, jak tomu bylo dříve;

  • Přidána podpora pro kompilátor Clang na platformě Solaris;
  • Přidány nové možnosti příkazového řádku: „cmake -E true|false“ pro tisk návratových kódů 0 a 1; "cmake --trace-redirect=" místo toho přesměruje informace o sledování do souboru
    "stderr"; příkaz "cmake --loglevel" byl přejmenován na "--log-level", aby byl v souladu s názvy ostatních příkazů;

  • Přidán příkaz „target_precompile_headers()“ pro výpis seznamu hlavičkových souborů použitých během předkompilace (zkracuje dobu sestavení);
  • Přidána vlastnost „UNITY_BUILD“, která aktivuje dávkový režim pro zpracování zdrojových souborů v generátorech pro urychlení sestavení;
  • Přidány příkazy „find_file()“, „find_library()“, „find_path()“,
    "find_package()" a "find_program()" pro hledání souborů, knihoven, cest, balíčků a spustitelných souborů podle proměnných, které definují cesty hledání pro různé kategorie souborů.
    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_USE_SYSTEM_TH" se používají k ovládání CMAKE_FIND_USE_IST_SYSTEM_ENKEMAKERONAGE základní vyhledávací cesty RY";

  • Do příkazu „file()“ byl přidán režim „file(GET_RUNTIME_DEPENDENCIES)“, který vám umožňuje rekurzivně načíst seznam knihoven používaných při dynamickém propojování spustitelného souboru nebo knihovny. Režim nahradil příkaz GetPrequires(), který je nyní zastaralý;
  • Příkaz „ctest(1)“ implementuje schopnost serializovat testy na základě zdrojů požadovaných pro každý test;
  • Proměnná "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" byla zastaralá a měla by být nahrazena "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Vylepšená podpora platformy AIX. Při použití vlastnosti "ENABLE_EXPORTS" se nyní kromě spustitelného souboru vygeneruje i importní soubor pro linker, uložený s příponou ".imp". V pluginech vytvořených voláním "add_library()" s volbou "MODULE" lze tento soubor použít při propojování pomocí příkazu "target_link_libraries()". Linkování za běhu v AIX je ve výchozím nastavení zakázáno, protože CMake nyní poskytuje všechny potřebné informace o symbolech pro propojení při načítání. Chcete-li použít běhové propojení dynamických knihoven nebo načítatelných modulů, musíte explicitně zadat možnosti „-Wl, -G“ v seznamech spouštěcích příznaků linkeru, definovaných prostřednictvím proměnných „CMAKE_SHARED_LINKER_FLAGS“ a „CMAKE_MODULE_LINKER_FLAGS“.

Zdroj: opennet.ru

Přidat komentář