Paglabas ng mga build system CMake 3.21 at Meson 0.59

Ang ipinakita ay ang paglabas ng cross-platform open build script generator CMake 3.21, na nagsisilbing alternatibo sa Autotools at ginagamit sa mga proyekto tulad ng KDE, LLVM/Clang, MySQL, MariaDB, ReactOS at Blender. Ang CMake code ay nakasulat sa C++ at ipinamahagi sa ilalim ng lisensya ng BSD.

Ang CMake ay kapansin-pansin sa pagbibigay ng isang simpleng scripting language, isang paraan ng pagpapalawak ng functionality sa pamamagitan ng mga module, isang minimal na bilang ng mga dependency (walang binding sa M4, Perl o Python), suporta sa pag-cache, pagkakaroon ng mga tool para sa cross-compilation, suporta para sa pagbuo ng build mga file para sa malawak na hanay ng mga build system at compiler, ang presensya ng ctest at cpack na mga utility para sa pagtukoy ng mga test script at mga building package, cmake-gui utility para sa interactive na pagtatakda ng mga parameter ng build.

Mga pangunahing pagpapabuti:

  • Nagdagdag ng buong suporta para sa Heterogenous-Computing Interface para sa Portability (HIP) na programming language, isang dialect ng C++ na wika na naglalayong gawing mas madaling i-convert ang mga CUDA application sa portable C++ code.
  • Nagdagdag ng build script generator para sa Visual Studio 17 2022, batay sa Visual Studio 2022 Preview 1.1.
  • Ang Makefile at Ninja build script generators ay nagdagdag ng C_LINKER_LAUNCHER at CXX_LINKER_LAUNCHER na mga katangian, na maaaring magamit upang ilunsad ang mga auxiliary utilities na naglulunsad ng linker, gaya ng mga static analyzer. Tatakbo ang generator ng mga tinukoy na utility, na ipapasa sa kanila ang pangalan ng linker at ang mga argumento nito.
  • Sa mga pag-aari na "C_STANDARD" at "OBJC_STANDARD", pati na rin sa mga tool para sa pagtatakda ng mga parameter ng compiler (Compile Features), idinagdag ang suporta para sa mga pagtutukoy ng C17 at C23.
  • Ang opsyong β€œβ€”toolchain” ay naidagdag sa cmake utility > upang matukoy ang landas patungo sa toolkit.
  • Ang mga uri ng mga mensahe na ipinapakita sa terminal ay naka-highlight.
  • Nagdagdag ng suporta para sa Fujitsu compiler.
  • Tinitiyak ng command na "foreach()" na ang mga variable ng loop ay nakahiwalay sa loob ng isang loop.

Bukod pa rito, mapapansin natin ang paglabas ng Meson 0.59 build system, na ginagamit upang bumuo ng mga proyekto tulad ng X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME at GTK. Ang code ng Meson ay nakasulat sa Python at lisensyado sa ilalim ng lisensya ng Apache 2.0. Sinusuportahan ang cross compilation at pagbuo sa Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS at Windows gamit ang GCC, Clang, Visual Studio at iba pang compiler. Posibleng bumuo ng mga proyekto sa iba't ibang programming language, kabilang ang C, C++, Fortran, Java at Rust. Sa halip na ang make utility, ang Ninja toolkit ay ginagamit bilang default kapag gumagawa, ngunit ang iba pang mga backend tulad ng xcode at VisualStudio ay maaari ding gamitin.

Ang system ay may built-in na multi-platform dependency handler na nagbibigay-daan sa iyong gamitin ang Meson upang bumuo ng mga pakete para sa mga pamamahagi. Tinukoy ang mga panuntunan sa pagpupulong sa isang pinasimpleng wikang tukoy sa domain, lubos na nababasa at nauunawaan ng user (tulad ng nilayon ng mga may-akda, dapat gumugol ang developer ng pinakamababang oras sa pagsusulat ng mga panuntunan). Sinusuportahan ang incremental build mode, kung saan ang mga bahagi lang na direktang nauugnay sa mga pagbabagong ginawa mula noong huling build ang muling itinayo. Maaaring gamitin ang Meson upang bumuo ng mga paulit-ulit na build, kung saan ang pagpapatakbo ng build sa iba't ibang kapaligiran ay nagreresulta sa pagbuo ng ganap na magkaparehong mga executable na file.

Mga pangunahing inobasyon ng Meson 0.59:

  • Nagdagdag ng suporta para sa wikang Cython (isang advanced na bersyon ng Python na naglalayong pasimplehin ang pagsasama sa C code).
  • Nagdagdag ng mga keyword na "unescaped_variables" at "unescaped_uninstalled_variables" upang tukuyin ang mga variable sa pkgconfig nang hindi lumalabas sa mga puwang na may "\" character.
  • Nagdagdag ng suporta para sa wrc (Wine Resource Compiler).
  • Ang kakayahang bumuo ng mga proyekto para sa Visual Studio 2012 at Visual Studio 2013 ay ipinatupad.
  • Ang lahat ng mga utos na nauugnay sa subproject ay pinapatakbo na ngayon ang bawat subproject nang magkatulad bilang default. Ang bilang ng mga parallel na proseso ay tinutukoy ng parameter na "--num-processes".

Pinagmulan: opennet.ru

Magdagdag ng komento