Meson 1.3 ಅಸೆಂಬ್ಲಿ ಸಿಸ್ಟಮ್‌ನ ಬಿಡುಗಡೆ

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ಮತ್ತು GTK ಯಂತಹ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಬಳಸಲಾಗುವ Meson 1.3.0 ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ನ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ. ಮೆಸನ್ ಕೋಡ್ ಅನ್ನು ಪೈಥಾನ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಅಪಾಚೆ 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ.

ಮೆಸನ್‌ನ ಪ್ರಮುಖ ಅಭಿವೃದ್ಧಿ ಗುರಿಯು ಅನುಕೂಲತೆ ಮತ್ತು ಬಳಕೆಯ ಸುಲಭತೆಯೊಂದಿಗೆ ಹೆಚ್ಚಿನ ವೇಗದ ಜೋಡಣೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಒದಗಿಸುವುದು. ತಯಾರಿಕೆಯ ಬದಲಿಗೆ, ನಿರ್ಮಾಣವು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಂಜಾ ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಆದರೆ xcode ಮತ್ತು VisualStudio ನಂತಹ ಇತರ ಬ್ಯಾಕೆಂಡ್ಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು. ವ್ಯವಸ್ಥೆಯು ಅಂತರ್ನಿರ್ಮಿತ ಬಹು-ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅವಲಂಬನೆ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಹೊಂದಿದೆ ಅದು ವಿತರಣೆಗಳಿಗಾಗಿ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮೆಸನ್ ಅನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಸೆಂಬ್ಲಿ ನಿಯಮಗಳನ್ನು ಸರಳೀಕೃತ ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಯಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ, ಅವುಗಳು ಚೆನ್ನಾಗಿ ಓದಬಲ್ಲವು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಅರ್ಥವಾಗುವಂತಹವು (ಲೇಖಕರ ಕಲ್ಪನೆಯ ಪ್ರಕಾರ, ಡೆವಲಪರ್ ನಿಯಮಗಳನ್ನು ಬರೆಯಲು ಕನಿಷ್ಠ ಸಮಯವನ್ನು ಕಳೆಯಬೇಕು).

GCC, ಕ್ಲಾಂಗ್, ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ ಮತ್ತು ಇತರ ಕಂಪೈಲರ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ಮತ್ತು Windows ನಲ್ಲಿ ಕ್ರಾಸ್-ಕಂಪೈಲಿಂಗ್ ಮತ್ತು ಬಿಲ್ಡಿಂಗ್ ಬೆಂಬಲಿತವಾಗಿದೆ. C, C++, Fortran, Java ಮತ್ತು Rust ಸೇರಿದಂತೆ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಯೋಜನೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿದೆ. ಹೆಚ್ಚುತ್ತಿರುವ ಬಿಲ್ಡ್ ಮೋಡ್ ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಕೊನೆಯ ನಿರ್ಮಾಣದಿಂದ ಮಾಡಿದ ಬದಲಾವಣೆಗಳಿಗೆ ನೇರವಾಗಿ ಸಂಬಂಧಿಸಿದ ಘಟಕಗಳನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಾಣ ಮಾಡಲಾಗುತ್ತದೆ. ಪುನರಾವರ್ತನೀಯ ಬಿಲ್ಡ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಮೆಸಾನ್ ಅನ್ನು ಬಳಸಬಹುದು, ಅಲ್ಲಿ ವಿಭಿನ್ನ ಪರಿಸರಗಳಲ್ಲಿ ಬಿಲ್ಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದರಿಂದ ಸಂಪೂರ್ಣವಾಗಿ ಒಂದೇ ರೀತಿಯ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ.

Meson 1.3 ನ ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • ಕಂಪೈಲರ್ ಚೆಕ್ ವಿಧಾನಗಳಾದ compiler.compiles(), compiler.links() ಮತ್ತು compiler.run() ಆಯ್ಕೆಗೆ “werror: true” ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಕಂಪೈಲರ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ದೋಷಗಳೆಂದು ಪರಿಗಣಿಸುತ್ತದೆ (ಕೋಡ್ ಅನ್ನು ಎಚ್ಚರಿಕೆಗಳಿಲ್ಲದೆ ನಿರ್ಮಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಬಳಸಬಹುದು. )
  • ಪ್ರಿಪ್ರೊಸೆಸರ್ ಮೂಲಕ ಸಂಕೇತ ವ್ಯಾಖ್ಯಾನವನ್ನು ಪರಿಶೀಲಿಸಲು has_define ವಿಧಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಮ್ಯಾಕ್ರೋ_ಹೆಸರು ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್_ಫೈಲ್() ಫಂಕ್ಷನ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಸಿ ಭಾಷೆಯಲ್ಲಿ ಮ್ಯಾಕ್ರೋಗಳ ಶೈಲಿಯಲ್ಲಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ (ಡೈನಾಮಿಕ್‌ನೊಂದಿಗೆ ಕಾನ್ಫಿಗರ್ ಫೈಲ್‌ಗಳ ರಚನೆಯನ್ನು ಸರಳಗೊಳಿಸುವುದು) “#include” (“ರಕ್ಷಕರನ್ನು ಸೇರಿಸಿ”) ಮೂಲಕ ಡಬಲ್ ಸಂಪರ್ಕಗಳಿಗೆ ಮ್ಯಾಕ್ರೋ ರಕ್ಷಣೆಯನ್ನು ಸೇರಿಸುತ್ತದೆ. ಮ್ಯಾಕ್ರೋ ಹೆಸರುಗಳು).
  • configure_file() - JSON ("output_format: json") ಗೆ ಹೊಸ ಔಟ್‌ಪುಟ್ ಸ್ವರೂಪವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • c_std ಮತ್ತು cpp_std ನಿಯತಾಂಕಗಳಿಗೆ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, "default_options: 'c_std=gnu11,c11′').
  • ಫೈಲ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು CustomTarget ಅನ್ನು ಬಳಸುವ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ, ನಿಂಜಾ ಉಪಯುಕ್ತತೆಯ ಮೂಲಕ ಸಂದೇಶಗಳ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಬಿಲ್ಡ್_ಟಾರ್ಗೆಟ್ "ಜಾರ್" ಅನ್ನು ಅಸಮ್ಮತಿಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಬದಲಿಗೆ "ಜಾರ್()" ಕರೆಯನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.
  • ಜನರೇಟರ್ ಇನ್‌ಪುಟ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಪರಿಸರ ವೇರಿಯಬಲ್ ಅನ್ನು ಹೊಂದಿಸಲು generator.process() ವಿಧಾನಕ್ಕೆ 'env' ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಎಕ್ಸಿಕ್ಯೂಟಬಲ್‌ಗಳೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಬಿಲ್ಡ್ ಟಾರ್ಗೆಟ್ ಹೆಸರುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಾಗ, "ಎಕ್ಸಿಕ್ಯೂಟಬಲ್('ಫೂ', 'ಮೇನ್.ಸಿ', ನೇಮ್_ಸಫಿಕ್ಸ್: 'ಬಾರ್')" ನಂತಹ ಪ್ರತ್ಯಯಗಳನ್ನು ಅದೇ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ರಚಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ.
  • share_module() ಗೆ ರವಾನಿಸಲಾದ ಕಾರ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಡೆಫ್ ಫೈಲ್ ಅನ್ನು ಬಳಸಲು "vs_module_defs" ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ() ಕಾರ್ಯಕ್ಕೆ ಸೇರಿಸಲಾಗಿದೆ.
  • ಫಾಲ್‌ಬ್ಯಾಕ್ ಉಪಯೋಜನೆಗಾಗಿ ಡೀಫಾಲ್ಟ್ ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿಸಲು find_program() ಕಾರ್ಯಕ್ಕೆ 'default_options' ನಿಯತಾಂಕವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • fs.relative_to() ವಿಧಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಮೊದಲ ಮಾರ್ಗವು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಎರಡನೆಯದಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗೆ ಸಂಬಂಧಿತ ಮಾರ್ಗವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • ಕೆಳಗಿನ_ಸಿಮ್‌ಲಿಂಕ್‌ಗಳ ನಿಯತಾಂಕವನ್ನು install_data(), install_headers() ಮತ್ತು install_subdir() ಕಾರ್ಯಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ; ಹೊಂದಿಸಿದಾಗ, ಸಾಂಕೇತಿಕ ಲಿಂಕ್‌ಗಳನ್ನು ಅನುಸರಿಸಲಾಗುತ್ತದೆ.
  • ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಮುಂಚೂಣಿಯಲ್ಲಿರುವ ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಹೆಚ್ಚಿಸುವುದಕ್ಕಾಗಿ int.to_string() ವಿಧಾನಕ್ಕೆ "ಫಿಲ್" ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, n=3 ಗಾಗಿ ಸಂದೇಶ(n.to_string(ಭರ್ತಿ: 4)) ಕರೆ ಮಾಡುವುದರಿಂದ "004" ಸ್ಟ್ರಿಂಗ್ ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ.
  • ಕ್ಲಾಂಗ್-ಟಿಡಿ-ಫಿಕ್ಸ್ ಎಂಬ ಹೊಸ ಗುರಿಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಅದು "-ಫಿಕ್ಸ್" ಫ್ಲ್ಯಾಗ್‌ನೊಂದಿಗೆ ಕ್ಲಾಂಗ್-ಟೈಡಿ ಯುಟಿಲಿಟಿ ರನ್ ಮಾಡುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ.
  • ಅಸೆಂಬ್ಲಿ ಗುರಿಯ ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) ಪ್ರತ್ಯಯವನ್ನು (TARGET_SUFFIX) ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಕಂಪೈಲ್ ಆಜ್ಞೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.
  • ಪ್ಯಾಕೇಜ್ ಸಂಗ್ರಹಕ್ಕೆ (ಉಪಪ್ರಾಜೆಕ್ಟ್‌ಗಳು/ಪ್ಯಾಕೇಜ್‌ಕ್ಯಾಶ್) ಮಾರ್ಗವನ್ನು ಅತಿಕ್ರಮಿಸಲು ಪರಿಸರ ವೇರಿಯಬಲ್ MESON_PACKAGE_CACHE_DIR ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ಹಲವಾರು ಯೋಜನೆಗಳಲ್ಲಿ ಹಂಚಿದ ಸಂಗ್ರಹವನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • ನಿರಂತರ ಸಂಗ್ರಹವನ್ನು ತೆರವುಗೊಳಿಸಲು "meson setup --clearcache" ಆಜ್ಞೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • "ಅಗತ್ಯವಿರುವ" ಕೀವರ್ಡ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಎಲ್ಲಾ "has_*" ಕಂಪೈಲರ್ ಚೆಕ್ ವಿಧಾನಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, "ದೃಢೀಕರಣ (cc.has_function('some_function'))" ಬದಲಿಗೆ ನೀವು ಈಗ "cc.has_function('some_function'' ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. , ಅಗತ್ಯವಿದೆ: ನಿಜ)”.
  • ಹೊಸ ಕೀವರ್ಡ್, rust_abi ಅನ್ನು share_library(), static_library(), library(), ಮತ್ತು shared_module() ಕಾರ್ಯಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಇದನ್ನು ಅಸಮ್ಮತಿಸಿದ rust_crate_type ಬದಲಿಗೆ ಬಳಸಬೇಕು.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ