运行目标

有时你需要一个只运行外部命令的目标。例如,你可能有一个构建目标来重新格式化你的源代码、运行 cppcheck 或类似的东西。在 Meson 中,这是通过所谓的运行目标实现的。

建议的做法是将你想要运行的命令写入一个脚本文件。这是一个示例脚本。

#!/bin/sh

cd "${MESON_SOURCE_ROOT}"
inspector_command -o "${MESON_BUILD_ROOT}/inspection_result.txt"

请注意两个环境变量 MESON_SOURCE_ROOTMESON_BUILD_ROOT。这些是项目源代码和构建目录的绝对路径,由 Meson 自动设置。除了这些,Meson 还设置了变量 MESON_SUBDIR,它指向指定运行命令的子目录。大多数命令不需要设置这个。

请注意脚本如何以 cd 到源代码目录开始。Meson 不保证脚本在任何特定目录中运行。是否需要这样做取决于你的自定义目标想要做什么。

为了将其设置为运行目标,我们将其写入名为 scripts/inspect.sh 的脚本文件,并在顶层 Meson 文件中指定它,如下所示。

run_target('inspector',
  command : 'scripts/inspect.sh')

运行目标默认情况下不会运行。要运行它,请运行以下命令。

$ meson compile inspector

run_targetcommand 数组中的所有其他条目都将不变地传递给检查器脚本,因此你可以执行以下操作

run_target('inspector',
  command : ['scripts/inspect.sh', '--exclude', 'tests'])

搜索结果为