我有一个顶级的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链接?
答案 0 :(得分:0)
我认为ExternalProject_Add(...)
就是你想要的。
请参阅描述类似问题的CMake: How to build external projects and include their targets。