我使用的是CMake 3.23,构建目录是C:\Dev\MyProject\LibA\cmake-build-debug-vs。${CMAKE_CURRENT_BINARY_DIR}提供了构建目录的完整路径。是否有办法只获取cmake-build-debug-vs?CMake是否有一个专用的变量只用于生成目录的名称?我尝试了几个内置变量,它们都返回完整的路径。
C:\Dev\MyProject\LibA\cmake-build-debug-vs
${CMAKE_CURRENT_BINARY_DIR}
cmake-build-debug-vs
7nbnzgx91#
如果只想要最新路径组件的名称(文件名或目录;取决于最后一个组件),则可以使用CMake的相对新路径功能。这将提取cmake-build-debug-vs并将其存储到变量MY_BUILD_PATH_NAME中。
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中。
../
1条答案
按热度按时间7nbnzgx91#
如果只想要最新路径组件的名称(文件名或目录;取决于最后一个组件),则可以使用CMake的相对新路径功能。
这将提取
cmake-build-debug-vs
并将其存储到变量MY_BUILD_PATH_NAME
中。如果你想计算一个从你的路径到另一个路径的相对路径,那么你必须使用文件(RELATIVE_PATH)API,就像注解中提到的那样。
这将计算
../
并将其存储到变量MY_BUILD_PATH_NAME
中。