我有两个项目,都使用 CMake。现在我想将其中一个项目作为库包含在另一个项目中,同时仍保持将它们编译为独立项目的能力。
到目前为止我所做的是:使用版本控制系统将子项目的副本克隆到父项目的子目录中。我已经使用“add_subdirectory”将子项目的 CMakeLists.txt 包含到父项目中。我通过重命名子项目中的一些目标来修复目标之间的名称冲突。
但是,我遇到的一个问题是子项目中的各种配置测试似乎没有运行。例如,子项目使用 FindThreads 模块来确定可用的同步原语。父项目不知道线程问题,因此没有任何与此相关的测试。同样,子项目对标头进行各种测试,而父项目不需要这些测试。这些测试似乎都没有运行,并且这些测试定义的符号没有被添加到 CMakeCache.txt 文件中。
我真的不想将所有子项目的测试(主要处理与父项目无关的特定于平台的问题)提升到父项目的 CMakeLists.txt 中。