According to the cmake documentation:
Provides an option for the user to select as ON or OFF
However, I noticed that the command works with any other values.
My test script:
cmake_minimum_required (VERSION 2.6)
option(MY_VAR "var description" OFF)
message("MY_VAR=${MY_VAR}")
if(MY_VAR)
message("MY_VAR is not OFF/FALSE/0")
endif()
Results:
>cmake ..
or
>cmake -DMY_VAR=OFF ..
output:
MY_VAR=OFF
>cmake -DMY_VAR=ON ..
output:
MY_VAR=ON
MY_VAR is not OFF/FALSE/0
>cmake -DMY_VAR=FALSE ..
output:
MY_VAR=FALSE
>cmake -DMY_VAR=TRUE ..
output:
MY_VAR=TRUE
MY_VAR is not OFF/FALSE/0
>cmake -DMY_VAR=0 ..
output:
MY_VAR=0
>cmake -DMY_VAR=1 ..
output:
MY_VAR=1
MY_VAR is not OFF/FALSE/0
cmake -DMY_VAR=3 ..
output:
MY_VAR=3
MY_VAR is not OFF/FALSE/0
Documentation for option command describes just a convention about possible values. By itself, the option does NOT check a value of the variable, so the variable could contain any string.
Actual interpretation of the variable is up to the CMakeLists.txt script.
Usually, options are checked with if(VAR) syntax, so they are interpreted according to the documentation for if command:
True if the constant is
1,ON,YES,TRUE,Y, or a non-zero number. False if the constant is0,OFF,NO,FALSE,N,IGNORE,NOTFOUND, the empty string, or ends in the suffix-NOTFOUND.
As you can see, the if command allows several values for an option to be True-interpreted, and several values to be False-interpreted. (There is no reason to use values with -NOTFOUND suffix: they are intended to be produced only by a command like find_library.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With