Rakennusjärjestelmien CMake 3.21 ja Meson 0.59 julkaisu

Esitelty on monialustaisen avoimen koontikomentosarjageneraattorin CMake 3.21 julkaisu, joka toimii vaihtoehtona Autotoolsille ja jota käytetään projekteissa, kuten KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ja Blender. CMake-koodi on kirjoitettu C++-kielellä ja jaettu BSD-lisenssillä.

CMake tarjoaa yksinkertaisen skriptikielen, tavan laajentaa toimintoja moduulien kautta, minimaalisen määrän riippuvuuksia (ei sidotusta M4:ään, Perliin tai Pythoniin), välimuistin tuesta, ristiinkäännöstyökalujen olemassaolosta, tuesta koontiversion luomiseen. tiedostot monenlaisille koontijärjestelmille ja kääntäjille, läsnäolo-ctest- ja cpack-apuohjelmat testiskriptien ja -pakettien määrittämiseen, cmake-gui-apuohjelma koontiparametrien interaktiiviseen asettamiseen.

Tärkeimmät parannukset:

  • Lisätty täysi tuki Heterogeneous-Computing Interface for Portability (HIP) -ohjelmointikielelle, C++-kielen murteelle, jonka tarkoituksena on helpottaa CUDA-sovellusten muuntamista kannettavaksi C++-koodiksi.
  • Lisätty Visual Studio 17 2022:n koontikomentosarjageneraattori, joka perustuu Visual Studio 2022 Preview 1.1:een.
  • Makefile- ja Ninja-koontikomentosarjageneraattorit ovat lisänneet C_LINKER_LAUNCHER- ja CXX_LINKER_LAUNCHER-ominaisuudet, joita voidaan käyttää linkkerin käynnistävien apuohjelmien, kuten staattisten analysaattoreiden, käynnistämiseen. Generaattori suorittaa määritetyt apuohjelmat välittäen niille linkkerin nimen ja sen argumentit.
  • Ominaisuuksiin "C_STANDARD" ja "OBJC_STANDARD" sekä kääntäjän parametrien asettamisen työkaluihin (Compile Features) on lisätty tuki C17- ja C23-määrittelyille.
  • Vaihtoehto "—toolchain" on lisätty cmake-apuohjelmaan > määrittää polun työkalupakkiin.
  • Päätelaitteessa näkyvät viestityypit on korostettu.
  • Lisätty tuki Fujitsu-kääntäjälle.
  • "foreach()"-komento varmistaa, että silmukkamuuttujat eristetään silmukan sisällä.

Lisäksi voimme huomata Meson 0.59 -koontijärjestelmän julkaisun, jota käytetään rakentamaan projekteja, kuten X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Mesonin koodi on kirjoitettu Pythonilla ja se on lisensoitu Apache 2.0 -lisenssillä. Tukee ristiin kääntämistä ja rakentamista Linuxissa, Illumos/Solarisissa, FreeBSD:ssä, NetBSD:ssä, DragonFly BSD:ssä, Haikussa, macOS:ssä ja Windowsissa GCC:n, Clangin, Visual Studion ja muiden kääntäjien avulla. On mahdollista rakentaa projekteja eri ohjelmointikielillä, mukaan lukien C, C++, Fortran, Java ja Rust. Make-apuohjelman sijaan Ninja-työkalupakkia käytetään oletuksena rakennuksessa, mutta myös muita taustaohjelmia, kuten xcode ja VisualStudio, voidaan käyttää.

Järjestelmässä on sisäänrakennettu usean alustan riippuvuuskäsittelijä, jonka avulla voit käyttää Mesonia jakelupakettien rakentamiseen. Kokoonpanosäännöt on määritelty yksinkertaistetulla verkkotunnuskohtaisella kielellä, ne ovat erittäin luettavia ja käyttäjälle ymmärrettäviä (tekijöiden tarkoittaman, kehittäjän tulee käyttää vähintään aikaa sääntöjen kirjoittamiseen). Inkrementaalinen rakennustila on tuettu, jossa vain komponentit, jotka liittyvät suoraan edellisen koontiversion jälkeen tehtyihin muutoksiin, rakennetaan uudelleen. Mesonilla voidaan luoda toistettavia koontiversioita, joissa koontiversion suorittaminen eri ympäristöissä johtaa täysin identtisten suoritettavien tiedostojen luomiseen.

Meson 0.59:n tärkeimmät innovaatiot:

  • Lisätty tuki Cython-kielelle (Pythonin edistynyt versio, jonka tarkoituksena on yksinkertaistaa integrointia C-koodiin).
  • Lisätty avainsanat "unescaped_variables" ja "unescaped_uninstalled_variables" määrittämään muuttujat pkgconfigissa ilman välilyöntejä "\"-merkillä.
  • Lisätty tuki wrc:lle (Wine Resource Compiler).
  • Mahdollisuus luoda projekteja Visual Studio 2012:lle ja Visual Studio 2013:lle on otettu käyttöön.
  • Kaikki aliprojektiin liittyvät komennot suorittavat nyt jokaisen aliprojektin oletusarvoisesti rinnakkain. Rinnakkaisten prosessien lukumäärä määräytyy parametrilla "--num-processes".

Lähde: opennet.ru

Lisää kommentti