Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build 你能用介子来概括源代码吗?_Build_Build System_Meson Build - Fatal编程技术网

Build 你能用介子来概括源代码吗?

Build 你能用介子来概括源代码吗?,build,build-system,meson-build,Build,Build System,Meson Build,是否有可能在介子构建中整合源代码文件 我在介子单元测试中发现了一个问题,显示了如何对源进行全局分析,但在评论中说这是不推荐的 不建议这样做的原因:尝试通过全局目录添加文件不会使这些文件自动显示在生成中。必须手动重新调用介子才能将文件添加到构建中。重新调用忍者或其他后端是不够的,你必须重新调用介子本身。不,这是不可能的。必须明确说明每个源以构建目标。不鼓励全局复制源文件,这是一种不好的做法,而且。它会导致奇怪的错误,使您很难将一些开发文件放在一边进行开发,但您不想构建或发布这些文件,并且可能会导致

是否有可能在介子构建中整合源代码文件

我在介子单元测试中发现了一个问题,显示了如何对源进行全局分析,但在评论中说这是不推荐的


不建议这样做的原因:尝试通过全局目录添加文件不会使这些文件自动显示在生成中。必须手动重新调用介子才能将文件添加到构建中。重新调用忍者或其他后端是不够的,你必须重新调用介子本身。

不,这是不可能的。必须明确说明每个源以构建目标。

不鼓励全局复制源文件,这是一种不好的做法,而且。它会导致奇怪的错误,使您很难将一些开发文件放在一边进行开发,但您不想构建或发布这些文件,并且可能会导致增量构建出现问题

显式比隐式好

2021-03-02编辑:

请阅读介子常见问题解答

介子不支持这种语法,原因很简单。这不可能既可靠又快速

如果在所有警告之后,您仍然希望自己承担风险,FAQ会告诉您如何进入。您只需使用一个外部脚本进行全局搜索并返回文件列表(该脚本在该示例中称为
grabber.sh


我找到的唯一方法是调用一个外部进程,该进程对源进行全局处理并返回一个文件列表,这些文件可以在介子中迭代。
if build_machine.system() == 'windows'
  c = run_command('grabber.bat')
  grabber = find_program('grabber2.bat')
else
  c = run_command('grabber.sh')
  grabber = find_program('grabber.sh')
endif


# First test running command explicitly.
if c.returncode() != 0
  error('Executing script failed.')
endif

newline = '''
'''

sources = c.stdout().strip().split(newline)

e = executable('prog', sources)
c = run_command('grabber.sh')
sources = c.stdout().strip().split('\n')
e = executable('prog', sources)