在 CMake 中获取 CMAKE_CURRENT_SOURCE_DIR 上方的目录

Sau*_*ava 3 makefile cmake

CMAKE_CURRENT_SOURCE_DIR 返回当前处理的 CMakeLists.txt 所在的目录。路径是从 root 开始的完整路径。

我们如何访问,比如说CMAKE_CURRENT_SOURCE_DIR.

例如如果 CMAKE_CURRENT_SOURCE_DIR = /Users/saurabhshri/Documents/GitHub/repo/src/

我想要路径/Users/saurabhshri/Documents/GitHub/repo/

当然做../${PROJECT_SOURCE_DIR}..//Users/saurabhshri/Documents/GitHub/repo/src/

我查看了 CMake ( https://cmake.org/Wiki/CMake_Useful_Variables#Locations ) 的“位置”文档,但找不到任何内容。

Sau*_*ava 5

我使用get_filename_component.

get_filename_component(DIR_ONE_ABOVE ../ ABSOLUTE)
message(STATUS ${DIR_ONE_ABOVE})
Run Code Online (Sandbox Code Playgroud)

完整文档:https : //cmake.org/cmake/help/latest/command/get_filename_component.html

感谢来自 cmake IRC 频道的ngladitz