CMake porównaj z pustym łańcuchem za pomocą STREQUAL nie powiodło się

Zawsze myślę, że jeśli chcesz porównać dwa ciągi (ale nie zmienne), wszystko, co musisz zrobić, to cytować to w ten sposób:

if("${A}" STREQUAL "some string")

ale teraz stwierdzam, że ten kod czasami się drukujeoops:

cmake_minimum_required(VERSION 2.8)

if("d" STREQUAL "")
  message("oops...")
endif()

Może to być błąd (ponieważ drukuje zXcode, ale nie zrobić)? Czy są jakieś specjalne zmienne?

cmake: 2.8.12, 2.8.11.2xcode: 4.6.2, 5.0.1

Aktualizacja

Jest poleceniestrunowy bez opisanych problemów:

string(COMPARE EQUAL "${A}" "" result)
if(result)
  message("...")
endif()

Aktualizacja 2

Zachowanie, którego się spodziewałem od tamtego czasuCMake 3.1.0 (widziećCMP0054).

Wyjście 3.0.2test:

CMake version: 3.0.2
Quoted test
Surprise!
Unquoted test
Surprise!

Wyjście 3.1.0test:

CMake version: 3.1.0
Quoted test
OK
Unquoted test
Surprise!

questionAnswers(1)

yourAnswerToTheQuestion