问候:
我有两个不同的C ++项目,每个项目都有自己的 CMakeList.txt 文件,该文件生成 .so 库文件。例如。两个项目都在路径 trunk / A 和 trunk / B 下,它们包含文件:
分别生成文件 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包含文件的东西?
提前致谢了!
答案 0 :(得分:2)
您需要使用ADD_SUBDIRECTORY
:
PROJECT(TEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
ADD_SUBDIRECTORY( A )
ADD_SUBDIRECTORY( B )