嵌入的另一个内一个cmake的项目?(Embedding one cmake project ins

2019-07-18 21:42发布

我有两个项目,它们都使用CMake的。 现在,我想包括项目与其他内部库之一,同时仍保持编译它们作为独立项目的能力。

什么是迄今为止我所做的是:使用版本控制系统克隆孩子项目的副本在父项目的子目录。 我用“add_subdirectory”,包括儿童项目到父项目的CMakeLists.txt。 我已经通过重命名一些目标的子项目固定目标之间的名称冲突。

但是,我遇到的一个问题是,在子项目的各种配置测试似乎没有运行。 例如,孩子项目使用FindThreads模块,以确定哪些同步原语可用。 父项目不知道的线程问题,因此并没有与此相关的任何测试。 同样,孩子的项目有那些不需要由父项目头和这样的各种测试。 这些测试中没有一个似乎是运行,并且由这些试验所定义的符号不被添加到CMakeCache.txt文件。

我真的不希望有葫芦所有子项目的测试(其中主要是处理不相关父特定于平台的问题)到父项目的CMakeLists.txt的。

Answer 1:

CMake的2.8增加了一个新的外部项目模块,它可以让你创建一个定制的目标来驱动另一个CMake的项目的生成。 这个文档是一种弱,但它看起来像它可能会做你想要什么。

我认为这个想法是从你的父项目调用ExternalProject_Add,将其指向子工程的源代码目录(你甚至可以把它检查子项目出SVN或CVS你,漂亮的!)。



文章来源: Embedding one cmake project inside of another?
标签: cmake