自定义构建目标
虽然 Meson 努力支持尽可能多的语言和工具,但它不可能覆盖所有特殊情况。对于这些情况,它允许您定义自定义构建目标。以下是使用方法。
comp = find_program('custom_compiler')
infile = 'source_code.txt'
outfile = 'output.bin'
mytarget = custom_target('targetname',
output : outfile,
input : infile,
command : [comp, '@INPUT@', '@OUTPUT@'],
install : true,
install_dir : 'subdir')
这将生成二进制文件 output.bin
并将其安装到 ${prefix}/subdir/output.bin
。变量替换与源代码生成时的用法相同。
有关此主题的更多信息,请参见 生成源代码。
命令调用详细信息
Meson 只允许您指定一个要运行的命令。这是经过设计的,因为在构建定义文件中编写 shell 管道会导致难以维护的代码。如果您的命令需要多个步骤,则需要编写一个包装脚本,它会执行所有必要的工作。
执行此操作时,您需要注意以下问题
- 不要假设命令是在任何特定目录中调用的
- 在子目录
subdir
中定义的目标名为target
文件outfile
必须写入build_dir/subdir/foo.dat
- 如果您需要一个子目录来存放临时文件,请使用
build_dir/subdir/target.dir
搜索结果是