【发布时间】:2020-07-02 19:01:20
【问题描述】:
我想检测 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 MSYS。我实际上并不感到惊讶,因为 MSYS2 和 MSYS 是两种不同的野兽!同样来自here,我试过了:
message(${CMAKE_SYSTEM_NAME})
在 cmd 和 MSYS2 中都返回 Windows!如果您能帮助我了解如何检测 cmake 命令是否从 MSYS2 shell 内部运行,我将不胜感激。提前感谢您的支持。
P.S.1. 作为我个人的笔记,this 和 this 似乎是值得研究的好来源。
P.S.2 奇怪的是命令
message(${CMAKE_HOST_SYSTEM_NAME})
在我的MSYS2上也返回Windows,根据the docuemntation,它必须返回uname -s的结果!
【问题讨论】: