我在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()
编译。有没有办法可以运行此命令并将文件直接传递给该函数进行处理?
答案 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 )