运行目标
有时你需要一个只运行外部命令的目标。例如,你可能有一个构建目标来重新格式化你的源代码、运行 cppcheck
或类似的东西。在 Meson 中,这是通过所谓的运行目标实现的。
建议的做法是将你想要运行的命令写入一个脚本文件。这是一个示例脚本。
#!/bin/sh
cd "${MESON_SOURCE_ROOT}"
inspector_command -o "${MESON_BUILD_ROOT}/inspection_result.txt"
请注意两个环境变量 MESON_SOURCE_ROOT
和 MESON_BUILD_ROOT
。这些是项目源代码和构建目录的绝对路径,由 Meson 自动设置。除了这些,Meson 还设置了变量 MESON_SUBDIR
,它指向指定运行命令的子目录。大多数命令不需要设置这个。
请注意脚本如何以 cd 到源代码目录开始。Meson 不保证脚本在任何特定目录中运行。是否需要这样做取决于你的自定义目标想要做什么。
为了将其设置为运行目标,我们将其写入名为 scripts/inspect.sh
的脚本文件,并在顶层 Meson 文件中指定它,如下所示。
run_target('inspector',
command : 'scripts/inspect.sh')
运行目标默认情况下不会运行。要运行它,请运行以下命令。
$ meson compile inspector
run_target
的 command
数组中的所有其他条目都将不变地传递给检查器脚本,因此你可以执行以下操作
run_target('inspector',
command : ['scripts/inspect.sh', '--exclude', 'tests'])
搜索结果为