获取不包括完整路径的cmake构建目录的名称

icnyk63a  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(152)

我使用的是CMake 3.23,构建目录是C:\Dev\MyProject\LibA\cmake-build-debug-vs${CMAKE_CURRENT_BINARY_DIR}提供了构建目录的完整路径。是否有办法只获取cmake-build-debug-vs
CMake是否有一个专用的变量只用于生成目录的名称?我尝试了几个内置变量,它们都返回完整的路径。

7nbnzgx9

7nbnzgx91#

如果只想要最新路径组件的名称(文件名或目录;取决于最后一个组件),则可以使用CMake的相对新路径功能。
这将提取cmake-build-debug-vs并将其存储到变量MY_BUILD_PATH_NAME中。

cmake_path (GET CMAKE_CURRENT_BINARY_DIR PARENT_PATH MY_BUILD_PATH_NAME)
message (STATUS "MY_BUILD_PATH_NAME = \"${MY_BUILD_PATH_NAME}\"")

如果你想计算一个从你的路径到另一个路径的相对路径,那么你必须使用文件(RELATIVE_PATH)API,就像注解中提到的那样。

file (RELATIVE_PATH MY_BUILD_PATH_NAME "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/../")
message (STATUS "MY_BUILD_PATH_NAME = \"${MY_BUILD_PATH_NAME}\"")

这将计算../并将其存储到变量MY_BUILD_PATH_NAME中。

相关问题