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

时间:2018-01-26 10:42:56

标签: cmake buildconfiguration path-separator

我正在使用CMake配置一些项目。我需要将路径分隔符(例如/\)放入CMake变量中以执行某些操作,更不用说究竟是什么了。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

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

但是@vre使用file(TO_NATIVE_PATH)命令进行了评论,你可以这样做:

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

如果您有完整的路径$<SHELL_PATH:...> generator expression  (CMake版本&gt; = 3.4)非常有用:

  

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

答案 1 :(得分:0)

简单就是那个

if (CMAKE_SYSTEM_NAME MATCHES "Windows")
  set(SEP "\\")
else ()
  set(SEP "/")
endif()

另一种方法是使用Python脚本在配置期间生成头文件。