我有两个项目,它们都使用CMake的。 现在,我想包括项目与其他内部库之一,同时仍保持编译它们作为独立项目的能力。
什么是迄今为止我所做的是:使用版本控制系统克隆孩子项目的副本在父项目的子目录。 我用“add_subdirectory”,包括儿童项目到父项目的CMakeLists.txt。 我已经通过重命名一些目标的子项目固定目标之间的名称冲突。
但是,我遇到的一个问题是,在子项目的各种配置测试似乎没有运行。 例如,孩子项目使用FindThreads模块,以确定哪些同步原语可用。 父项目不知道的线程问题,因此并没有与此相关的任何测试。 同样,孩子的项目有那些不需要由父项目头和这样的各种测试。 这些测试中没有一个似乎是运行,并且由这些试验所定义的符号不被添加到CMakeCache.txt文件。
我真的不希望有葫芦所有子项目的测试(其中主要是处理不相关父特定于平台的问题)到父项目的CMakeLists.txt的。