我有一个利用另一个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中实现此目的?
谢谢!
答案 0 :(得分:1)
将我的评论转化为答案
如果要将源注入现有目标,可以使用target_sources()(与CMake 3.1版一起引入)。
在你的情况下,这看起来像是:
<强> /CMakeLists.txt 强>
...
add_subdirectory(vendor)
target_sources(vendor_target PRIVATE "patch/patch.c")
我将vendor_target
作为占位符。请将其替换为要将源注入的目标的真实名称。
有关详细信息,请参阅例如here