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.1Aktualizacja
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!