我是CMake和重新学习C ++的新手,所以我希望这些是适当的问题。我在目录/ projects / A中有一个项目,在/ projects / include / open-source-project-1中有一些项目所依赖的.h文件。
Sample Hierarchy: /projects /CMakeLists.txt /A /CMakeLists.txt /a.cpp /B /CMakeLists.txt /include /open-source-project-1 /includeMe.h /open-source-project-2
答案 0 :(得分:3)
您的顶级CMakeLists.txt
文件不,除非所有项目都以某种方式直接相互关联或具有其他无法解析的依赖项。 不相关的项目不应该相互包含,也不他们需要父列表文件。
如果A和B是单独的项目,./A/CMakeLists.txt
和./B/CMakeLists.txt
应至少包含以下行:
include_directories(../include)
否则,如果A和B是较大单个项目的部分,那么将这些行放在顶级CMakeLists.txt
文件中是合适的:
include_directories(include)
add_subdirectory(A)
add_subdirectory(B)
仅适用于单独的项目。一次调用cmake
将创建一个构建树。您只需要构建树的一个项目。
add_subdirectory
指令时,才会影响其他列表文件。