Vydání systému sestavení CMake 3.17.0

Předložené vydání multiplatformního open build generátoru skriptů CMake 3.17, 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í:

  • Byl přidán nový generátor skriptů sestavení založený na sadě nástrojů Ninja – „Ninja Multi-Config“, který se od starého generátoru liší schopností zpracovat několik konfigurací sestav najednou.
  • V generátoru skriptů sestavení pro Visual Studio se objevil schopnost definovat zdrojové soubory spojené s každou konfigurací (zdroje podle konfigurace).
  • Do nástrojů pro nastavení parametrů kompilátoru (Compile Features) byla přidána možnost nastavení meta parametrů pro CUDA („cuda_std_03“, „cuda_std_14“ atd.).
  • Přidány proměnné "CMAKE_CUDA_RUNTIME_LIBRARY" a "CUDA_RUNTIME_LIBRARY" pro výběr typu runtime knihoven při použití CUDA.
  • Přidán modul "FindCUDAToolkit" pro určení sady nástrojů CUDA dostupné v systému bez povolení jazyka CUDA.
  • Do cmake byl přidán příkaz „--debug-find“ pro výstup další čitelné diagnostiky při provádění vyhledávacích operací. Pro podobné účely byla přidána proměnná CMAKE_FIND_DEBUG_MODE.
  • Do modulu „FindCURL“ přidána podpora pro vyhledávání nástrojů CURL pomocí konfiguračních souborů „CURLConfig.cmake“ generovaných cmake. Chcete-li toto chování zakázat, je k dispozici proměnná CURL_NO_CURL_CMAKE.
  • Modul FindPython přidal možnost vyhledávat komponenty Pythonu ve virtuálních prostředích spravovaných pomocí „conda“.
  • Obslužný program ctest přidal možnosti „--no-tests=[error|ignore]“ pro definování chování v případě, že neproběhnou žádné testy, a „--repeat“ pro nastavení podmínek pro opětovné spuštění testů (dokud neprojde, po vypršení časového limitu).
  • Vlastnosti cíle sestavení INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES a INTERFACE_LINK_DEPENDS jsou nyní přeneseny mezi interní závislosti staticky sestavených knihoven.
  • Při použití sady nástrojů MinGW je vyhledávání souborů DLL pomocí příkazu find_library ve výchozím nastavení zakázáno (místo toho je výchozím pokusem import knihoven „.dll.a“).
  • Logika pro výběr nástroje ninja v generátoru Ninja nyní nezávisí na názvu spustitelného souboru – použije se první nástroj ninja-build, ninja nebo samu nalezený v cestách definovaných prostřednictvím proměnné prostředí PATH.
  • Do cmake byl přidán příkaz "-E rm", který lze použít k odstranění souborů a adresářů namísto samostatných příkazů "-E remove" a "-E remove_directory".

Zdroj: opennet.ru

Přidat komentář