我一直认为,如果你想比较两个字符串(但不是变量),你需要做的就是像这样引用它:
if("${A}" STREQUAL "some string")
但现在我发现这段代码有时会打印oops
:
cmake_minimum_required(VERSION 2.8)
if("d" STREQUAL "")
message("oops...")
endif()
可能是错误(因为它用Xcode打印,但不是用make打印)?还是有一些特殊的变量?
- 制作:2.8.12、2.8.11.2
- xcode:4.6.2、5.0.1
更新
有没有描述问题的命令字符串:
string(COMPARE EQUAL "${A}" "" result)
if(result)
message("...")
endif()
更新 2
自CMake 3.1.0以来我期望实现的行为(请参阅CMP0054)。
3.0.2测试的输出:
CMake version: 3.0.2
Quoted test
Surprise!
Unquoted test
Surprise!
3.1.0测试的输出:
CMake version: 3.1.0
Quoted test
OK
Unquoted test
Surprise!