我有一个顶级的CMakeLists.txt文件,它构建一个名为Camellia的库和几个与Camellia链接的子目录中的可执行文件 . 我想在Camellia / TPL / Xdmf下添加一个名为XDMF的第三方库作为Camellia的依赖项 . 幸运的是,XDMF已经在CMake构建系统上,但是当我使用时
add_subdirectory(TPL/Xdmf)
然后
add_library(Camellia ${LIB_SOURCES} ${HEADERS})
它在build / TPL / Xdmf / bin目录中构建Camellia,而不是像没有add_subdirectory(TPL / Xdmf)那样构建 . 为什么添加子目录会更改Camellia的构建目录,如何修复它?另外,一旦我弄明白,我如何确保Camellia与Xdmf链接?
1 回答
我认为
ExternalProject_Add(...)
就是你想要的 .请参阅描述类似问题的CMake: How to build external projects and include their targets .