介子项目:我可以将部分源位于其他地方吗?

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

本文关键字:其他 方吗 于其他 我可以 子项目      更新时间:2023-10-16

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

例如:

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

include_directories仅用于标头...

如果我在文件路径中使用"..",则会出现此错误:

meson.build:10:0:错误:Subdir 包含 ..

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

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

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

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

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

source =  files(file1.cpp)

放入介子.构建内部

ExternalCode/src 

文件夹