介子项目:我可以将部分源代码放在其他地方吗?

Meson project: can I have part of the source located elsewhere?

在 Meson 项目中,我如何编译位于不在我的项目树中的目录中的文件(即不仅仅是 headers)?

例如:

MyProj/
   src/
      meson.build
ExternalCode/
   src/
      file1.h
      file1.cpp

include_directories 仅适用于 headers...

如果我在文件路径中使用“..”,我会得到这个错误:

meson.build:10:0: ERROR: Subdir contains ..

如果您想将 ExternalCode 构建为项目的一部分,那么我建议以某种方式获取项目中的这个目录,例如使用符号 link 并将 meson.build 文件放在旁边。因此,您的项目布局将如下所示:

MyProj/
   meson.build
   src/
      meson.build
   external/
      ExternalCode -> link to ...
      meson.build

然后,了解项目中所有子目录的介子,将其放在顶级 meson.build 文件中:

subdir('src')
subdir('external')

是的,但必须通过以下方式获取外部文件: 例如

source =  files(file1.cpp)

放在meson.build里面

ExternalCode/src 

文件夹