2017-12-27 298 views
0

我将一个项目移植到CMake,并努力寻找如何设置标头搜索路径(以前使用编译器标志设置,例如-I "../../Source")。CMake和标头搜索路径

我目前有:

target_include_directories (jni-bridge PRIVATE 
    "../../Analysis" 
    "../../Source" 
) 

但是,这是行不通的。我应该如何设置路径,以及它们相对于哪个位置?

+0

为什么不在高级CMakeLists.txt的搜索路径中添加这些目录?如果这些不是当前CMake项目的一部分,那么最好使用一些CMake变量添加这些目录,以使项目具有可移植性。 –

回答

0

在内部,CMake使用绝对路径作为包括目录。如果相对路径与target_include_directories一起使用,则将相对于当前源目录${CMAKE_CURRENT_SOURCE_DIR})进行解释。


上面时发生器表达式不使用是真实的。

生成器表达式$<INSTALL_INTERFACE:..>可能(并强烈建议)使用相对于安装前缀解释的相对路径。

发生器表达式$<BUILD_INTERFACE:...>应该使用绝对路径。