Le STREQUAL de CMake ne fonctionne pas
<!-Selon la documentation de CMake, le
STREQUAL
la comparaison peut prendre soit une VARIABLE, soit une chaîne de caractères comme paramètre. Ainsi, dans cet exemple ci-dessous, le message n'est pas imprimé, ce qui est cassé:
set( FUBARTEST "OK" )
if( FUBARTEST STREQUAL "OK" )
message( "It Worked" )
endif()
Aucune raison pour que cela ne fonctionne pas comme indiqué?
17
demandé sur
void.pointer
2011-10-06 20:15:13
2 réponses
le problème était ma cache. J'ai effacé mon cache et reconfiguré et maintenant le code fonctionne.
26
répondu
void.pointer
2011-10-06 19:16:18
Je n'ai pas testé votre exemple au début, mais quand je l'ai fait, je vois que votre code fonctionne très bien sur cmake 2.8.0, et les autres combinaisons annoncées dans les docs le font aussi:
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()
sortie:
FUBARTEST Worked
string STREQUAL string works
variable STREQUAL variable works
variable STREQUAL string works
12
répondu
Rian Sanderson
2011-10-06 18:20:39