我一直认为,如果你想比较两个字符串(而不是变量),你只需要像这样引用它:
但是现在我发现这段代码有时会打印"oops"。
也许这是一个错误(因为它打印出 Xcode,但不打印 make)?
或者有一些特殊的变量?
cmake: 2.8.12, 2.8.11.2 xcode: 4.6.2, 5.0.1
更新
有一个 string 命令没有描述的问题:
if("${A}" STREQUAL "some string")
但是现在我发现这段代码有时会打印"oops"。
cmake_minimum_required(VERSION 2.8)
if("d" STREQUAL "")
message("oops...")
endif()
也许这是一个错误(因为它打印出 Xcode,但不打印 make)?
或者有一些特殊的变量?
cmake: 2.8.12, 2.8.11.2 xcode: 4.6.2, 5.0.1
更新
有一个 string 命令没有描述的问题:
string(COMPARE EQUAL "${A}" "" result)
if(result)
message("...")
endif()
更新 2
我所期望的行为已从 CMake 3.1.0 版本开始实施(参见 CMP0054)。
3.0.2 版本的输出为 test:
CMake version: 3.0.2
Quoted test
Surprise!
Unquoted test
Surprise!
3.1.0版本的输出test:
CMake version: 3.1.0
Quoted test
OK
Unquoted test
Surprise!