Izdaja sistema gradnje CMake 3.17.0

Predložil izdaja večplatformskega odprtega generatorja skriptov za gradnjo CMake 3.17, ki deluje kot alternativa Autotools in se uporablja v projektih, kot so KDE, LLVM/Clang, MySQL, MariaDB, ReactOS in Blender. Koda CMake je napisana v C++ in se distribuira pod licenco BSD.

CMake je znan po tem, da zagotavlja preprost skriptni jezik, sredstvo za razširitev funkcionalnosti prek modulov, minimalno število odvisnosti (brez vezave na M4, Perl ali Python), podporo za predpomnjenje, prisotnost orodij za navzkrižno prevajanje, podporo za ustvarjanje gradnje datoteke za široko paleto gradbenih sistemov in prevajalnikov, prisotnost pripomočkov ctest in cpack za definiranje testnih skriptov in gradnjo paketov, pripomoček cmake-gui za interaktivno nastavitev gradbenih parametrov.

Glavni izboljšave:

  • Dodan je bil nov generator sestavnih skriptov, ki temelji na kompletu orodij Ninja - “Ninja Multi-Config”, ki se od starega generatorja razlikuje po zmožnosti obdelave več konfiguracij sestavov hkrati.
  • V generatorju montažnih skriptov za Visual Studio pojavil možnost definiranja izvornih datotek, povezanih z vsako konfiguracijo (izviri na konfiguracijo).
  • Orodjem za nastavitev parametrov prevajalnika (Compile Features) je bila dodana možnost nastavitve meta parametrov za CUDA (“cuda_std_03”, “cuda_std_14” itd.).
  • Dodani spremenljivki »CMAKE_CUDA_RUNTIME_LIBRARY« in »CUDA_RUNTIME_LIBRARY« za izbiro vrste izvajalnih knjižnic pri uporabi CUDA.
  • Dodan je modul »FindCUDAToolkit« za določitev kompleta orodij CUDA, ki je na voljo v sistemu, ne da bi omogočili jezik CUDA.
  • Dodan ukaz "--debug-find" v cmake za izpis dodatne berljive diagnostike pri izvajanju iskalnih operacij. Za podobne namene je bila dodana spremenljivka CMAKE_FIND_DEBUG_MODE.
  • Dodana podpora za iskanje orodij CURL z uporabo konfiguracijskih datotek »CURLConfig.cmake«, ki jih ustvari cmake, v modul »FindCURL«. Če želite onemogočiti to vedenje, je na voljo spremenljivka CURL_NO_CURL_CMAKE.
  • Modul FindPython je dodal možnost iskanja komponent Python v virtualnih okoljih, ki se upravljajo s pomočjo »conda«.
  • Pripomoček ctest je dodal možnosti »--no-tests=[error|ignore]« za določitev vedenja v primeru, da ni preizkusov in »--repeat« za nastavitev pogojev za ponovno izvajanje testov (dokler ne poteka, po časovni omejitvi).
  • Lastnosti cilja sestavljanja INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES in INTERFACE_LINK_DEPENDS so zdaj prenesene med notranje odvisnosti statično sestavljenih knjižnic.
  • Pri uporabi kompleta orodij MinGW je iskanje datotek DLL z ukazom find_library privzeto onemogočeno (namesto tega je privzeti poskus uvoza knjižnic ".dll.a").
  • Logika izbire pripomočka ninja v generatorju Ninja zdaj ni odvisna od imena izvršljive datoteke - uporabljen je prvi pripomoček ninja-build, ninja ali samu, najden na poteh, definiranih s spremenljivko okolja PATH.
  • V cmake je dodan ukaz »-E rm«, ki se lahko uporablja za odstranjevanje datotek in imenikov namesto ločenih ukazov »-E remove« in »-E remove_directory«.

Vir: opennet.ru

Dodaj komentar