有没有一种强大的方法来规范化CMake中的路径?
例:
# Let's assume that an environment variable MY_ROOT_DIR is set
# that points to some directory.
set(MYFILE "$ENV{MY_ROOT_DIR}/somefile.txt")
message(${MYFILE})
# This will result for example in
# Win: C:\path\to\my\root\dir/somefile.txt
# Unix based: /path/to/my/root/dir/somefile.txt
Run Code Online (Sandbox Code Playgroud)
在此示例中,在将MY_ROOT_DIR其用作路径组件之前,需要对其进行规范化(即用斜杠替换反斜杠).你会如何在CMake中做到这一点?
CMake(或工具链下方的工具)可以处理具有混合分隔符(/或\)的路径,或者可以不处理.CMake /用作标准分隔符.CMake为具有错误路径分隔符的路径生成的典型警告\可能类似于:
CMake Warning (dev) at cmake_install.cmake:5 (set):
Syntax error in cmake code at
C:/path/to/my/root/build/cmake_install.cmake:5
when parsing string
C:\path\to\my\root/somefile.txt
Invalid escape sequence \p
Policy CMP0010 is not set: Bad variable reference syntax is an error. Run
"cmake --help-policy CMP0010" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Run Code Online (Sandbox Code Playgroud)
感谢您的任何提示!
您可以使用此file(TO_CMAKE_PATH)命令.
该
TO_CMAKE_PATH模式<path>使用正斜杠(/)将本机转换为cmake样式的路径.输入可以是单个路径,也可以是系统搜索路径$ENV{PATH}.搜索路径将转换为由;字符分隔的cmake样式列表.
这是一个例子:
file(TO_CMAKE_PATH "$ENV{MY_DIR_VAR}" ENV_MY_DIR_VAR)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |