Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMake error "if given arguments" followed by parenthesis, "NOT", "EQUALS" and similar

CMake emits an error in from the following line

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

The error is

CMake Error at CMakeLists.txt:37 (if):

    if given arguments:

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

Unknown arguments specified

What's the problem? The line is valid code.

like image 794
Michael Avatar asked Sep 26 '16 16:09

Michael


1 Answers

Probably you try to check an empty variable. The problem is $ENV{TnCfg} because it is empty. CMake replaces the value of the variable names by their values, leading to

if (NOT (STREQUAL Linux_Build_Speech))

That's not valid and CMake wants an argument left of STREQUAL.

Putting quotation-marks around the variable

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

fixes the problem, because it gets replaced by "" leading to

if(NOT ("" STREQUAL Linux_Build_Speech))

and the empty string is a valid argument.

like image 86
usr1234567 Avatar answered Oct 11 '22 01:10

usr1234567