如何使用CMake获取系统的路径分隔符

问题描述 投票:0回答:2

我正在使用 CMake 配置一些项目。我需要将路径分隔符(例如

/
\
)放入 CMake 变量中以执行某些操作,而不管具体是什么。我怎样才能做到这一点?

cmake buildconfiguration path-separator
2个回答
4
投票

系统的路径分隔符没有CMake变量可以直接使用。

但是正如 @vre 评论的那样,使用

file(TO_NATIVE_PATH)
命令你可以这样做:

file(TO_NATIVE_PATH "/" _separator)
message("The systems's path separator is '${_separator}'")

如果您有完整路径,则

$<SHELL_PATH:...>
生成器表达式 (CMake 版本 >= 3.4)非常有用:

...
的内容转换为shell路径样式。例如,在 Windows shell 中,斜杠将转换为反斜杠,在 MSYS shell 中,驱动器号将转换为 posix 路径。
...
必须是绝对路径。


0
投票

更新,在CMake 3.20+中,使用

cmake_path
函数:

cmake_path(SET os_path_separator NORMALIZE "/")
cmake_path(NATIVE_PATH os_path_separator os_path_separator)
© www.soinside.com 2019 - 2024. All rights reserved.