Meson

Meson() 构建助手旨在在 build()package() 方法中使用,以自动调用 Meson 命令。

from conan import ConanFile
from conan.tools.meson import Meson

class PkgConan(ConanFile):

    def build(self):
        meson = Meson(self)
        meson.configure()
        meson.build()

    def package(self):
        meson = Meson(self)
        meson.install()

参考

class Meson(conanfile)

当构建包时,此类会调用 Meson 命令。请注意,此工具应与 MesonToolchain 生成器一起使用。

参数:

conanfile< ConanFile 对象 > 当前配方对象。始终使用 self

configure(reconfigure=False)

运行 meson setup [FILE] "BUILD_FOLDER" "SOURCE_FOLDER" [-Dprefix=/] 命令,其中 FILE 可以是 --native-file conan_meson_native.ini(如果进行原生构建)或 --cross-file conan_meson_cross.ini(如果进行交叉构建)。

参数:

reconfigurebool 值,它将 --reconfigure 参数添加到最终命令中。

build(target=None)

在构建文件夹中运行 meson compile -C . -j[N_JOBS] [TARGET]。您可以通过配置行 tools.build:jobs=N_JOBS 在您的配置文件 [conf] 部分中指定 N_JOBS

参数:

targetstr 指定要执行的目标。

install(cli_args=None)

在构建文件夹中运行 meson install -C "." --destdir ..

参数:

cli_args – 要添加到命令中的参数列表:meson install -C "." --destdir ... arg1 arg2

test()

在构建文件夹中运行 meson test -v -C "."

conf

Meson 构建助手受这些 [conf] 变量影响

  • tools.meson.mesontoolchain:extra_machine_files=[<FILENAME>] 配置,用于使用正确的参数(取决于原生或交叉构建)在命令末尾添加您的机器文件。有关更多信息,请参阅 此 Meson 参考

  • tools.compilation:verbosity 接受 quietverbose 其中一个值,并在 Meson.build() 中设置 --verbose 标志。

  • tools.build:verbosity 接受 quietverbose 其中一个值,并在 Meson.install() 中设置 --quiet 标志。

  • tools.build:install_strip(自 Conan 2.18.0 起)如果设置为 True,则会将 --strip 传递给 meson install 调用。