Predstavljen je novi cross-platform otvoreni generator skripti za izgradnju CMake 3.21, koji predstavlja alternativu Autotools i koristi se u projektima poput KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake-a je napisan u C++ jeziku i distribuira se pod BSD licencom.
CMake se ističe jednostavnim jezikom skripti, mogućnostima proširenja funkcionalnosti putem modula, minimalnim brojem ovisnosti (nema povezanosti s M4, Perlom ili Pythonom), podrškom za keširanje, alatima za kružno kompiliranje, podrškom za generiranje datoteka za izgradnju za širok spektar sustava izgradnje i kompajlera, te alatima ctest i cpack za definiranje skripti za testiranje i pakiranje, a također i alatom cmake-gui za interaktivno postavljanje opcija izgradnje.
Glavna poboljšanja:
- Dodana je potpuna podrška za programski jezik HIP (Heterogeneous-Computing Interface for Portability), dijalekta C++ jezika, koji je usmjeren na pojednostavljivanje konverzije CUDA aplikacija u prenosivi C++ kod.
- Dodana je generator skripti za Visual Studio 17 2022, temeljen na prethodnom izdanju Visual Studio 2022 Preview 1.1.
- U generatorima skripti za izgradnju Makefile i Ninja dodane su osobine C_LINKER_LAUNCHER i CXX_LINKER_LAUNCHER, koje omogućuju pokretanje pomoćnih alata koji izvode linker, poput statičkih analizatora. Generator će pokrenuti navedene alate, proslijedivši im naziv linkera i njegove argumente.
- U svojstvima 'C_STANDARD' i 'OBJC_STANDARD', kao i u alatima za podešavanje opcija kompajlera (Compile Features), dodana je podrška za specifikacije C17 i C23.
- U alat cmake dodana je opcija '—toolchain ' za određivanje puta do alatnog lanca.
- Osigurana je isticanje tipova poruka koje se ispisuju na terminalu.
- Dodana je podrška za Fujitsu kompajler.
- U komandi 'foreach()' osigurana je izolacija varijabli petlje unutar petlje.
Dodatno se može spomenuti izdanje sustava za izgradnju Meson 0.59, koji se koristi za izgradnju takvih projekata kao što su X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK. Kod Meson je napisan u Python jeziku i isporučuje se pod Apache 2.0 licencom. Podržava se cross-kompajlacija i izgradnja na Linuxu, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows koristeći GCC, Clang, Visual Studio i druge kompajlere. Moguće je izgraditi projekte na različitim programskim jezicima, uključujući C, C++, Fortran, Java i Rust. Umjesto alata make, pri izgradnji se prema zadanim postavkama koristi alat Ninja, ali je moguće koristiti i druge backende poput xcode i VisualStudio.
Sustav uključuje višekratnu platformu za upravljanje ovisnostima, koja omogućava korištenje Meson-a za izradu paketa za distribucije. Pravila izrade postavljaju se na pojednostavljenom predmetno orijentiranom jeziku, koji se odlikuje dobrom čitljivošću i jasan je korisniku (prema ideji autora, programer bi trebao potrošiti minimalno vremena na pisanje pravila). Podržava se inkrementalni način izrade, pri čemu se ponovno izrađuju samo komponente izravno povezane s promjenama izvršenim od posljednje izrade. Meson se može koristiti za formiranje ponovljivih izrada, pri čemu pokretanje izrade u različitim okruženjima dovodi do generiranja potpuno identičnih izvršnih datoteka.
Glavne novosti Meson 0.59:
- Dodana je podrška za Cython (proširena verzija Pythona, usmjerena na pojednostavljivanje integracije sa C kodom).
- Dodane su ključne riječi „unescaped_variables” i „unescaped_uninstalled_variables” za definiranje varijabli u pkgconfig bez eskapiranja razmaka s simbolom „\”.
- Dodana je podrška za wrc (Wine Resource Compiler).
- Implementirana je mogućnost generiranja projekata za Visual Studio 2012 i Visual Studio 2013.
- Sve naredbe povezane s obradom podprojekata sada po defaultu pokreću svaku podprojekt paralelno. Broj paralelno radnih procesa određuje se parametrom „—num-processes”.
Izvor: opennet.ru
