windows - CMake 将 unix 转换为 windows 路径

标签 windows cmake msys

我正在尝试转换一个 unix 风格的 MSYS 路径,例如 /c/my/path/to/a/folder 到 Windows 路径,或 CMake 可以理解的路径, 例如 C:/my/path/to/a/folder。 我希望它在已经正确的路径上工作。

有什么好的方法吗?

注意:请不要提及 cygwin 的 cygpath。

编辑:file(TO_CMAKE_PATH mypath result) 不工作

最佳答案

没有针对此的内置 CMake 功能,但您可以编写函数/宏来执行此操作:

macro(msys_to_cmake_path MsysPath ResultingPath)
  string(REGEX REPLACE "^/([a-zA-Z])/" "\\1:/" ${ResultingPath} "${MsysPath}")
endmacro()

set(mypath "/c/my/path/to/a/folder")
msys_to_cmake_path(${mypath} result)

message("Converted \"${mypath}\" to \"${result}\".")

话虽如此,我同意 Antonio 的评论,因为首先需要这个似乎很不寻常。

关于windows - CMake 将 unix 转换为 windows 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29397349/

相关文章:

curl - msys2 pacman 的下载问题

python - 无法在 Windows/MSYS2 下从 bash 脚本运行 MATLAB

windows - 批量更改到随机子目录

ruby - 如何从安装在 linux 上的 ruby​​ 在 windows 操作系统上执行控制台应用程序?

c++ - 为项目启用 clang

在 Linux 机器上使用 cmake Qt5 Webkit 进行 C++ 交叉编译,目标是使用 mingw 的 Windows,失败

c++ - 如何在 Windows NT 驱动程序中获取符号链接(symbolic link)名称?

windows - 有没有办法强制复制?在没有覆盖提示的情况下复制,使用 Windows?

c++ - cmake : shared library : how to get the . lib 名称而不是 .dll 名称?

mingw - MSYS 中缺少 mkdir