Cmake - 如何将源文件注入子目录项目

时间:2015-07-29 11:48:44

标签: cmake

我有一个利用另一个cmake库项目的cmake项目,dir看起来像这样:

/CMakeList.txt 
/main.c
/.gitmodules
/patch/patch.c
/vendor/CMakeList.txt  
/vendor/vendor.c
/vendor/...

/CMakeList.txt中,我使用add_subdirectory(vendor)将供应商库包含/链接到我自己的项目中。

/vendor/CMakeList.txt中,源文件由FILE(GLOB SRC_VEN vendor.c ...)

添加

我想将/patch/patch.c注入vendor库而不触及/vendor目录,这是一个git子模块

是否可以使用cmake在我的根CMakeList.txt中实现此目的?

谢谢!

1 个答案:

答案 0 :(得分:1)

将我的评论转化为答案

如果要将源注入现有目标,可以使用target_sources()(与CMake 3.1版一起引入)。

在你的情况下,这看起来像是:

<强> /CMakeLists.txt

...
add_subdirectory(vendor)
target_sources(vendor_target PRIVATE "patch/patch.c") 

我将vendor_target作为占位符。请将其替换为要将源注入的目标的真实名称。

有关详细信息,请参阅例如here