Vydanie zostavovacieho systému CMake 3.17.0

Predloženej vydanie multiplatformového open build generátora skriptov CMake 3.17, ktorý funguje ako alternatíva k Autotools a používa sa v projektoch ako KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender. Kód CMake je napísaný v C++ a distribuovaný pod licenciou BSD.

CMake je pozoruhodný tým, že poskytuje jednoduchý skriptovací jazyk, prostriedok na rozšírenie funkčnosti prostredníctvom modulov, minimálny počet závislostí (bez väzby na M4, Perl alebo Python), podporu ukladania do vyrovnávacej pamäte, prítomnosť nástrojov na krížovú kompiláciu, podporu pre generovanie zostavy súbory pre širokú škálu zostavovacích systémov a kompilátorov, obslužné programy pre prítomnosť ctest a cpack na definovanie testovacích skriptov a zostavovanie balíčkov, utilita cmake-gui na interaktívne nastavenie parametrov zostavovania.

Hlavné vylepšenia:

  • Bol pridaný nový generátor skriptov zostavy založený na súprave nástrojov Ninja - „Ninja Multi-Config“, ktorý sa líši od starého generátora v schopnosti spracovať niekoľko konfigurácií zostavy naraz.
  • V generátore skriptov zostavy pre Visual Studio objavil schopnosť definovať zdrojové súbory spojené s každou konfiguráciou (zdroje per-config).
  • Do nástrojov na nastavenie parametrov kompilátora (Compile Features) bola pridaná možnosť nastavenia meta parametrov pre CUDA („cuda_std_03“, „cuda_std_14“ atď.).
  • Pridané premenné "CMAKE_CUDA_RUNTIME_LIBRARY" a "CUDA_RUNTIME_LIBRARY" na výber typu runtime knižníc pri používaní CUDA.
  • Pridaný modul "FindCUDAToolkit" na určenie súpravy nástrojov CUDA dostupnej v systéme bez povolenia jazyka CUDA.
  • Pridaný príkaz „--debug-find“ do cmake na výstup ďalšej čitateľnej diagnostiky pri vykonávaní operácií vyhľadávania. Na podobné účely bola pridaná premenná CMAKE_FIND_DEBUG_MODE.
  • Do modulu „FindCURL“ bola pridaná podpora pre vyhľadávanie nástrojov CURL pomocou konfiguračných súborov vygenerovaných cmake „CURLConfig.cmake“. Ak chcete zakázať toto správanie, poskytuje sa premenná CURL_NO_CURL_CMAKE.
  • Modul FindPython pridal možnosť vyhľadávať komponenty Pythonu vo virtuálnych prostrediach spravovaných pomocou „conda“.
  • Pomôcka ctest pridala možnosti „--no-tests=[error|ignore]“ na definovanie správania v prípade žiadnych testov a možnosť „--repeat“ na nastavenie podmienok pre opätovné spustenie testov (kým neprejde, po uplynutí časového limitu).
  • Vlastnosti cieľa zostavy INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES a INTERFACE_LINK_DEPENDS sa teraz prenášajú medzi interné závislosti staticky zostavených knižníc.
  • Pri používaní súpravy nástrojov MinGW je vyhľadávanie súborov DLL pomocou príkazu find_library predvolene vypnuté (namiesto toho je štandardným pokusom import knižníc „.dll.a“).
  • Logika výberu pomôcky ninja v generátore Ninja teraz nezávisí od názvu spustiteľného súboru - použije sa prvá pomôcka pre ninja, ninja alebo samu nájdená v cestách definovaných prostredníctvom premennej prostredia PATH.
  • Do cmake bol pridaný príkaz „-E rm“, ktorý možno použiť na odstránenie súborov a adresárov namiesto samostatných príkazov „-E remove“ a „-E remove_directory“.

Zdroj: opennet.ru

Pridať komentár