gpt4 book ai didi

cmake - 如何检测 CMake 脚本是否在 MSYS2 环境中运行?

转载 作者:行者123 更新时间:2023-12-04 10:22:23 25 4
gpt4 key购买 nike

我想检测 CMakeLists.txt 是否在 MSYS2 环境/shell 中被调用:

$ uname
MSYS_NT-10.0-18363

来自 here我试过:

cmake_minimum_required(VERSION 3.10)

project(test_cmake)

if(MSYS) # yes I have also tried MSYS2 with the same result!
message("This is MSYS")
else()
message("This is not MSYS")
endif()

在 Windows cmd 和 MSYS2 shell 中返回相同的结果This is not MSY。我实际上并不感到惊讶,因为 MSYS2 和 MSYS 是两个不同的野兽!同样来自 here ,我试过:

message(${CMAKE_SYSTEM_NAME})

在 cmd 和 MSYS2 中都返回 Windows!如果您能帮助我了解如何检测 cmake 命令是否从 MSYS2 shell 中运行,我将不胜感激。提前感谢您的支持。

P.S.1. 作为我自己的个人笔记,thisthis似乎是值得研究的好资源。

P.S.2 奇怪的是命令

message(${CMAKE_HOST_SYSTEM_NAME})
根据 the docuemntation

在我的 MSYS2 上也返回 Windows , 它必须返回 uname -s!

的结果

最佳答案

好的,我想我知道问题出在哪里了。因为我也有 other issues早些时候,mingw64/mingw-w64-x86_64-cmake 导致了这个问题。所以我卸载了它并安装了 msys/cmake 包。现在:

  • if(MSYS) 返回 TRUE
  • 消息(${CMAKE_SYSTEM_NAME}) --> MSYS
  • 消息(${CMAKE_SYSTEM}) --> MSYS-3.0.7-338.x86_64
  • 消息(${CMAKE_HOST_SYSTEM_NAME}) --> MSYS

需要注意的是,现在您必须通过 -D CMAKE_MAKE_PROGRAM:path=mingw32-make 指定 make 工具的路径

关于cmake - 如何检测 CMake 脚本是否在 MSYS2 环境中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60794524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com