如何指定 Meson custom_target() 命令的路径?

How to specify a path to Meson custom_target() command?

我在 Meson 中做了一个简单的自定义目标:


my_build = custom_target('my_build', command: ['../my_script.sh', '-arg1'], build_always_stale: true, output: 'fake')

这工作正常...,但是当我尝试将其用作其他 Meson 项目的子项目时,我收到一条消息,提示找不到 ../my_script.sh

如何指定 my_script.sh 的路径,以便始终找到脚本,无论是直接在此子项目中调用,还是从根项目中调用?

您需要指定 script 的路径,您可以这样做:

scirpt_path = join_paths(meson.current_source_dir(), 'my_script.sh')

您的自定义目标将如下所示:

my_build = custom_target('my_build', command: [script_path, '-arg1'], build_always_stale: true, output: 'fake')

当您没有 subproject 时它对您有用的原因是因为您的构建目录位于项目的根目录中,因此可以找到您的脚本../my_script.sh