【发布时间】:2021-10-25 03:45:13
【问题描述】:
我了解${CMAKE_CURRENT_LIST_DIR}和${CMAKE_CURRENT_SOURCE_DIR}之间的区别,但我不明白前者和简单的.之间有什么区别?
例如,有没有什么场景
target_include_directories(foo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
行为会不同于
target_include_directories(imgwarp PRIVATE .)
?
【问题讨论】:
-
一些 CMake 命令接受(并正确工作)相对路径。但几乎所有命令都适用于绝对路径。根据文档,命令include_directories 接受相对路径并相对于当前源目录解释它们。所以对于那个命令
${CMAKE_CURRENT_SOURCE_DIR}相当于简单的点.。至于target_include_directories,它只允许INSTALL_INTERFACE的相对路径。