CMake系统包含搜索路径

6
我想知道如何为CMake项目添加一个包含目录到系统搜索路径中。特别地,我正在尝试为一些源代码构建CMake项目。这些源代码不是我的,因此我不想修改它们。这些源代码有以下包含指令:
#include <foo/bar.h>

所以我需要将包含foo的目录添加到我的搜索路径中。这是我可以在CMakeLists.txt中设置的吗?


有用的链接:http://www.cmake.org/cmake/help/help.html - http://www.cmake.org/cmake/help/documentation.html - Antonio
1个回答

14

您可以使用 include_directories(..) 设置将用于所有目标的目录,或者使用 target_include_directoriesset_property 仅向特定目标添加包含目录:

set(foo_INCLUDE_DIRS
    ${CMAKE_SOURCE_DIR}/foo
    ${CMAKE_SOURCE_DIR}/whatever)

set_property(TARGET YourTarget PROPERTY INCLUDE_DIRECTORIES ${foo_INCLUDE_DIRS})

target_include_directories(<target> [SYSTEM] [BEFORE <INTERFACE|PUBLIC|PRIVATE> [items1...]

#or
include_directories([AFTER|BEFORE] [SYSTEM] ${foo_INCLUDE_DIRS})

谢谢!我独立确定了include_directories指令确实适用于尖括号包含,并且事实上,我的CMakeLists.txt文件中存在错误。感谢您提供有关特定目标包含的信息! - bkinman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接