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

来源不是我的,所以我真的不想修改它。

源代码具有以下include伪指令:

#include <foo/bar.h>

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

最佳答案

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

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})

关于CMake系统包含搜索路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17729476/

10-10 16:29