Подтвердить что ты не робот

CMake STREQUAL не работает

В соответствии с документацией CMake сравнение STREQUAL допускает выбор параметра VARIABLE или STRING как параметр. Итак, в этом примере ниже, сообщение НЕ печатает, что нарушено:

set( FUBARTEST "OK" )
if( FUBARTEST STREQUAL "OK" )
    message( "It Worked" )
endif()

Любая причина, почему это не работает, как документировано?

4b9b3361

Ответ 1

Проблема была в моем кеше. Я удалил свой кеш и переконфигурировал, и теперь код работает.

Ответ 2

Сначала я не тестировал ваш пример, но когда я это сделал, я вижу, что ваш код отлично работает на cmake 2.8.0, а другие комбинации, рекламируемые в документах, тоже:

set( FUBARTEST "OK" )
if( FUBARTEST STREQUAL "OK" )
    message( "FUBARTEST Worked" )
else()
    message( "FUBARTEST FAILED" )
endif()

set( FOO "OK" )
if( ${FOO} STREQUAL "OK" )
    message("string STREQUAL string works" )
else ()
    message("string STREQUAL string FAILED" )

endif()

set( FOO "OK" )
set( BAR "OK" )
if( FOO STREQUAL BAR )
    message("variable STREQUAL variable works" )
else ()
    message("variable STREQUAL variable FAILED" )

endif()

set( FOO "OK" )
if( FOO STREQUAL "OK" )
    message("variable STREQUAL string works" )
else ()
    message("variable STREQUAL string FAILED" )

endif()

дает результат:

FUBARTEST Worked
string STREQUAL string works
variable STREQUAL variable works
variable STREQUAL string works