【发布时间】:2015-03-18 11:22:51
【问题描述】:
问候:
我有两个不同的 C++ 项目,每个项目都有自己的 CMakeList.txt 文件,该文件生成 .so 库文件。例如。这两个项目都在路径 trunk/A 和 trunk/B 下,它们包含以下文件:
- trunk/A/CMakeList.txt
- trunk/B/CMakeLists.txt
分别生成文件A.so和B.so。出于实际原因,我想将两个项目 A 和 B 分开,但我也希望有一个 CMakeList.txt 文件(例如trunk/CMakeList.txt),它将同时编译两个二进制文件。
我希望通过在 .pro 文件中包含一个 .pri 文件来复制类似于使用 qmake 可以实现的功能。因此,我尝试将两个 CMakeList 文件都包含在 trunk/CMakeList.txt 的以下代码中:
PROJECT(TEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
include(A/CMakeLists.txt)
include(B/CMakeLists.txt)
但是 CMake 不是这样工作的。包含的 CMakeList 文件中的内容是从 trunk 目录评估的。例如,通过阅读 trunk/A/CMakeList.txt 中的以下行:
FILE(GLOB HEADERS *.h)
CMake 只会在 /trunk 中查找 *.h 文件,而不是在 /trunk/A
中查找在 CMake 中是否有适当的方法来执行此操作?类似于 QMake 对 .pri 包含文件所做的事情?
提前百分感谢!
【问题讨论】: