【发布时间】:2014-02-24 18:18:25
【问题描述】:
我在使用 cmake 的 cygwin 上有一个奇怪的行为。 我尝试在我的 CMakeLists.txt 中检查操作系统,但似乎这种特殊情况不起作用...... 这是一个引发我的问题的例子:
set (FOO "BAR")
message(${CMAKE_SYSTEM_NAME})
if (${CMAKE_SYSTEM_NAME} STREQUAL "CYGWIN")
message("EQUALS CYGWIN")
endif()
if (${CMAKE_SYSTEM_NAME} MATCHES "CYGWIN")
message("MATCHES CYGWIN")
endif()
if (${FOO} MATCHES "BAR")
message("MATCHES BAR")
endif()
CMake 打印:
CYGWIN
EQUALS CYGWIN
MATCHES BAR
而不是预期的“匹配 CYGWIN”。 我觉得这很奇怪,它适用于其他变量(比如这里的 FOO)。 是不是我做错了什么?
配置:
- cmake 版本 2.8.11.2
- 取消命名 CYGWIN_NT-6.1
PS:我也检查了 FOO = "CYGWIN",它也不匹配。似乎只有这个特定的字符串不适用于 MATCHES...
【问题讨论】:
标签: c++ regex cmake cygwin match