if-statement cmake

if statement - CMake error "if given arguments" seguido de paréntesis, "NOT", "EQUALS" y similares



if-statement (1)

Probablemente intentes verificar una variable vacía. El problema es $ENV{TnCfg} porque está vacío. CMake reemplaza el valor de los nombres de las variables por sus valores, lo que lleva a

if (NOT (STREQUAL Linux_Build_Speech))

Eso no es válido y CMake quiere un argumento a la izquierda de STREQUAL .

Colocando comillas alrededor de la variable

if(NOT ("$ENV{TnCfg}" STREQUAL Linux_Build_Speech))

soluciona el problema, porque se reemplaza por "" lo que lleva a

if(NOT ("" STREQUAL Linux_Build_Speech))

y la cadena vacía es un argumento válido.

CMake emite un error en la siguiente línea

if(NOT ($ENV{TnCfg} STREQUAL Linux_Build_Speech))

El error es

CMake Error en CMakeLists.txt: 37 (si):

si se le dan argumentos:

"NOT" "(" "STREQUAL" "Linux_Build_Speech" ")"

Se han especificado argumentos desconocidos

¿Cuál es el problema? La linea es un codigo valido