如何在Meson中将多个文件连接成一个?

时间:2017-07-08 20:05:30

标签: meson-build

我在Meson中遇到基本任务有问题,我需要在构建过程中将多个文件连接成一个;基本上是:

cat *.txt > compiled.txt

cat foo.txt bar.txt baz.txt > compiled.txt

但是,无论我使用custom_target()generator()还是其他任何功能,Meson都无法找到compiled.txt或无法处理从多个输入文件转换到单个输出文件。

有没有简单的方法来实现这一目标?

更新

使用run_command()我设法构建compiled.txt并将其显示在源目录中。最终,我希望compiled.txt(我已在gresource.xml中列出)由gnome.compile_resources()编译。有没有办法可以运行此命令并将文件直接传递给该函数进行处理?

2 个答案:

答案 0 :(得分:1)

使用custom_target(),将输出传递给dependencies的{​​{1}}。请注意,您需要一个相当新的gnome.compile_resources()才能使用它。

另请参阅:http://mesonbuild.com/Gnome-module.html#gnomecompile_resources

答案 1 :(得分:0)

将解决方案从问题转移到答案:

  

<强>解决方案:

     

我最终没有使用gresources,但仍然需要这个解决方案来连接文件

cat_prog = find_program('cat')

parts_of_the_whole = files(
  'part1.txt',
  'part2.txt'
)

concat_parts = custom_target(
  'concat-parts',
  command: [ cat_prog, '@INPUT@' ],
  capture: true,
  input: parts_of_the_whole,
  output: 'compiled.txt',
  install_dir: appdatadir,
  install: true,
  build_by_default: true
)