自定义构建目标

虽然 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

搜索结果是