CMake系统包含搜索路径

CMake系统包含搜索路径,cmake,Cmake,我想知道如何将include目录添加到CMake项目的系统搜索路径中。特别是,我有一些资源,我正试图为其构建一个CMake项目 源代码不是我的,所以我真的不想修改它 源具有以下include指令: #include <foo/bar.h> #包括 因此,我需要将包含foo的目录添加到我的搜索路径中。这是我可以在CMakeLists.txt中设置的吗?您可以使用include_目录(..)来设置将用于所有目标的目录,或者使用或将include目录仅添加到特定目标: set(foo\

我想知道如何将include目录添加到CMake项目的系统搜索路径中。特别是,我有一些资源,我正试图为其构建一个CMake项目

源代码不是我的,所以我真的不想修改它

源具有以下include指令:

#include <foo/bar.h>
#包括

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

您可以使用include_目录(..)来设置将用于所有目标的目录,或者使用或将include目录仅添加到特定目标:

set(foo\u INCLUDE\u DIRS
${CMAKE_SOURCE_DIR}/foo
${CMAKE_SOURCE_DIR}/which)
set_属性(TARGET YourTarget属性INCLUDE_目录${foo_INCLUDE_DIRS})
目标目录([系统][在[项目1…]之前]
#或
include|u目录([AFTER|BEFORE][SYSTEM]${foo_include_DIRS})

谢谢!我独立确定include_directories指令确实适用于尖括号include,事实上,我的CMakeLists.txt文件中有一个错误。感谢提供有关特定目标的信息,包括!有用的链接:-
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})