เชฎเซ‡เชธเชจ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เชฐเชฟเชฒเซ€เช 1.3

Meson 1.3.0 เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— X.Org เชธเชฐเซเชตเชฐ, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME เช…เชจเซ‡ GTK เชœเซ‡เชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชฎเซ‡เชธเซ‹เชจ เช•เซ‹เชก เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเซ‹ เช›เซ‡ เช…เชจเซ‡ เช…เชชเชพเชšเซ‡ 2.0 เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชฒเชพเช‡เชธเชจเซเชธ เชฅเชฏเซ‡เชฒ เช›เซ‡.

เชฎเซ‡เชธเชจเชจเซ‹ เชฎเซเช–เซเชฏ เชตเชฟเช•เชพเชธ เชงเซเชฏเซ‡เชฏ เชธเช—เชตเชกเชคเชพ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ เชนเชพเช‡ เชธเซเชชเซ€เชก เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡. เชฎเซ‡เช•เชจเซ‡ เชฌเชฆเชฒเซ‡, เชฌเชฟเชฒเซเชก เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชจเชฟเชจเซเชœเชพ เชŸเซ‚เชฒเช•เซ€เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏ เชฌเซ‡เช•เชเชจเซเชก เชœเซ‡เชฎ เช•เซ‡ xcode เช…เชจเซ‡ VisualStudio เชจเซ‹ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชฎเชฒเซเชŸเซ€-เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€ เชนเซ‡เชจเซเชกเชฒเชฐ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชถเชจ เชฎเชพเชŸเซ‡ เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เชธเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชจเชฟเชฏเชฎเซ‹ เชเช• เชธเชฐเชณ เชกเซ‹เชฎเซ‡เชจ-เชตเชฟเชถเชฟเชทเซเชŸ เชญเชพเชทเชพเชฎเชพเช‚ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชตเชพเช‚เชšเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เช…เชจเซ‡ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เช›เซ‡ (เชฒเซ‡เช–เช•เซ‹เชจเชพ เชตเชฟเชšเชพเชฐ เชฎเซเชœเชฌ, เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช เชจเชฟเชฏเชฎเซ‹ เชฒเช–เชตเชพเชฎเชพเช‚ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ‹ เชธเชฎเชฏ เชชเชธเชพเชฐ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช).

เช•เซเชฐเซ‹เชธ-เช•เชฎเซเชชเชพเช‡เชฒเซ‡เชถเชจ เช…เชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡. Linux, เช‡เชฒเซเชฎเซ‹เชธ/เชธเซ‹เชฒเชพเชฐเชฟเชธ, เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€, เชจเซ‡เชŸเชฌเซ€เชเชธเชกเซ€, เชกเซเชฐเซ‡เช—เชจเชซเซเชฒเชพเชฏ เชฌเซ€เชเชธเชกเซ€, เชนเซˆเช•เซ, macOS ะธ Windows GCC, Clang, Visual Studio เช…เชจเซ‡ เช…เชจเซเชฏ เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ C, C++, Fortran, Java เช…เชจเซ‡ Rust เชธเชนเชฟเชค เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“เชฎเชพเช‚ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ เชฌเชฟเชฒเซเชก เชฎเซ‹เชก เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡, เชœเซ‡ เชซเช•เซเชค เชชเชพเช›เชฒเชพ เชฌเชฟเชฒเซเชก เชชเช›เซ€ เชฅเชฏเซ‡เชฒเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชธเซ€เชงเชพ เชธเช‚เชฌเช‚เชงเชฟเชค เช˜เชŸเช•เซ‹เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเซ‡ เช›เซ‡. Meson เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฌเชฟเชฒเซเชกเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ เชฌเชฟเชฒเซเชกเชจเซ‡ เชตเชฟเชตเชฟเชง เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชšเชฒเชพเชตเชตเชพเชฅเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเชฎเชพเชจ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒเซ‹เชจเซเช‚ เชจเชฟเชฐเซเชฎเชพเชฃ เชฅเชพเชฏ เช›เซ‡.

เชฎเซ‡เชธเชจ 1.3 เชจเซ€ เชฎเซเช–เซเชฏ เชจเชตเซ€เชจเชคเชพเช“:

  • เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชšเซ‡เช• เชชเชฆเซเชงเชคเชฟเช“ compiler.compiles(), compiler.links(), เช…เชจเซ‡ compiler.run() เชฎเชพเช‚ เชนเชตเซ‡ "werror: true" เชตเชฟเช•เชฒเซเชช เช›เซ‡, เชœเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“เชจเซ‡ เชญเซ‚เชฒเซ‹ เชคเชฐเซ€เช•เซ‡ เช—เชฃเซ‡ เช›เซ‡ (เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชšเซ‡เชคเชตเชฃเซ€เช“ เชตเชฟเชจเชพ เช•เซ‹เชก เชฌเชจเชพเชตเซ‡ เช›เซ‡ เชคเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡).
  • เชชเซเชฐเซ€เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชคเซ€เช• เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡ เช•เซ‡ เชจเชนเซ€เช‚ เชคเซ‡ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ has_define เชชเชฆเซเชงเชคเชฟ เช‰เชฎเซ‡เชฐเซ€.
  • configure_file() เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ เชนเชตเซ‡ macro_name เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช›เซ‡ เชœเซ‡ "#include" ("include guards") เชฆเซเชตเชพเชฐเชพ เชกเชฌเชฒ-เช‡เชจเซเช•เซเชฒเซเชเชจ เชฎเซ‡เช•เซเชฐเซ‹ เชชเซเชฐเซ‹เชŸเซ‡เช•เซเชถเชจ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡, เชœเซ‡ C เชฎเซ‡เช•เซเชฐเซ‹เชจเซ€ เชถเซˆเชฒเซ€เชฎเชพเช‚ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เชฅเชฏเซ‡เชฒ เช›เซ‡ (เช† เช—เชคเชฟเชถเซ€เชฒ เชฎเซ‡เช•เซเชฐเซ‹ เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡).
  • configure_file() เชฎเชพเช‚ เชเช• เชจเชตเซเช‚ เช†เช‰เชŸเชชเซเชŸ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡: JSON ("output_format: json").
  • c_std เช…เชจเซ‡ cpp_std เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชนเชตเซ‡ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเซ‡ เช›เซ‡ (เชฆเชพ.เชค. "default_options: 'c_std=gnu11,c11'").
  • เชซเชพเช‡เชฒ เชชเซเชฐเซ‹เชธเซ‡เชธเชฟเช‚เช— เชฎเชพเชŸเซ‡ เช•เชธเซเชŸเชฎเชŸเชพเชฐเซเช—เซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชฎเชพเช‚, เชจเชฟเชจเซเชœเชพ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€ เชฆเซเชตเชพเชฐเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเชพ เช†เช‰เชŸเชชเซเชŸเชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.
  • "jar()" เช•เซ‹เชฒเชจเซ€ เชคเชฐเชซเซ‡เชฃเชฎเชพเช‚ build_target "jar" เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.
  • เชœเชจเชฐเซ‡เชŸเชฐ เช‡เชจเชชเซเชŸ เชชเซเชฐเซ‹เชธเซ‡เชธ เช•เชฐเชถเซ‡ เชคเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ generator.process() เชชเชฆเซเชงเชคเชฟเชฎเชพเช‚ 'env' เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.
  • เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒเซเชธ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเชพ เชฌเชฟเชฒเซเชก เชŸเชพเชฐเซเช—เซ‡เชŸเซเชธเชจเซ‡ เชจเชพเชฎ เช†เชชเชคเซ€ เชตเช–เชคเซ‡, "exectuable('foo', 'main.c', name_suffix: 'bar')" เชœเซ‡เชตเชพ เชชเซเชฐเชคเซเชฏเชฏเชจเซ‡ เชธเชฎเชพเชจ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชตเชงเชพเชฐเชพเชจเชพ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒเซเชธ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • shared_module() เชจเซ‡ เชชเชพเชธ เช•เชฐเซ‡เชฒเชพ เชซเช‚เช•เซเชถเชจเซเชธเชจเซ€ เชฏเชพเชฆเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชคเซ€ def เชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ exectuable() เชฎเชพเช‚ "vs_module_defs" เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚.
  • เชซเซ‹เชฒเชฌเซ‡เช• เชธเชฌเชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชตเชฟเช•เชฒเซเชชเซ‹ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ find_program() เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ 'default_options' เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚.
  • fs.relative_to() เชชเชฆเซเชงเชคเชฟ เช‰เชฎเซ‡เชฐเซ€, เชœเซ‡ เชœเซ‹ เชชเชนเซ‡เชฒเซ‹ เชชเชพเชฅ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชนเซ‹เชฏ เชคเซ‹ เชฌเซ€เชœเชพ เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชชเชพเชฅ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • install_data(), install_headers(), เช…เชจเซ‡ install_subdir() เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ follow_symlinks เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡; เชœเซเชฏเชพเชฐเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชธเชพเช‚เช•เซ‡เชคเชฟเช• เชฒเชฟเช‚เช•เซเชธ เช…เชจเซเชธเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • int.to_string() เชชเชฆเซเชงเชคเชฟเชฎเชพเช‚ เชนเชตเซ‡ "fill" เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชธเซเชŸเซเชฐเชฟเช‚เช—เชจเซ‡ เช†เช—เชณเชจเชพ เชถเซ‚เชจเซเชฏเชฅเซ€ เชชเซ‡เชก เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, n=4 เชฎเชพเชŸเซ‡ message(n.to_string(fill: 3)) เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเชพเชฅเซ€ "004" เชธเซเชŸเซเชฐเชฟเช‚เช— เชœเชจเชฐเซ‡เชŸ เชฅเชถเซ‡.
  • เชเช• เชจเชตเซเช‚ เชฒเช•เซเชทเซเชฏ clang-tidy-fix เช‰เชฎเซ‡เชฐเซเชฏเซเช‚, เชœเซ‡ "-fix" เชซเซเชฒเซ‡เช— เชธเชพเชฅเซ‡ clang-tidy เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡.
  • เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฎเชพเชจเซเชก เชนเชตเซ‡ เชคเชฎเชจเซ‡ เชฌเชฟเชฒเซเชก เชŸเชพเชฐเซเช—เซ‡เชŸ ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) เชฎเชพเชŸเซ‡ เชชเซเชฐเชคเซเชฏเชฏ (TARGET_SUFFIX) เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
  • เชชเซ‡เช•เซ‡เชœ เช•เซ‡เชถ เชชเชพเชฅ (เชธเชฌเชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ/เชชเซ‡เช•เซ‡เชœเช•เซ‡เชถ) เชจเซ‡ เช“เชตเชฐเชฐเชพเช‡เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ MESON_PACKAGE_CACHE_DIR เช‰เชฎเซ‡เชฐเซเชฏเซเช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช˜เชฃเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เช•เซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
  • เชธเชคเชค เช•เซ‡เชถ เชธเชพเชซ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "meson setup --clearcache" เช†เชฆเซ‡เชถ เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
  • เชฌเชงเซ€ "has_*" เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชšเซ‡เช• เชชเชฆเซเชงเชคเชฟเช“ เชนเชตเซ‡ "required" เช•เซ€เชตเชฐเซเชกเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "assert(cc.has_function('some_function'))" เชจเซ‡ เชฌเชฆเชฒเซ‡ เชนเชตเซ‡ เชคเชฎเซ‡ "cc.has_function('some_function', required: true)" เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.
  • shared_library(), static_library(), library(), เช…เชจเซ‡ shared_module() เชฎเชพเช‚ เชเช• เชจเชตเซ‹ เช•เซ€เชตเชฐเซเชก rust_abi เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชพเชฏเซ‡เชฒ rust_crate_type เชจเซ‡ เชฌเชฆเชฒเซ‡ เชฅเชตเซ‹ เชœเซ‹เชˆเช.

เชธเซ‹เชฐเซเชธ: opennet.ru

DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเชคเซ€ เชธเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ ๐Ÿ”ฅ DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ | ProHoster