make "yes;no" cmake options boolean instead of string

This commit is contained in:
oltolm
2024-04-01 14:20:25 +02:00
parent d930825a92
commit 78b8ea3646

View File

@@ -1,7 +1,7 @@
function(override_cache VAR VAL)
get_property(VAR_STRINGS CACHE ${VAR} PROPERTY STRINGS)
LIST(FIND VAR_STRINGS ${VAL} CK)
if(-1 EQUAL ${CK})
if(-1 EQUAL ${CK} AND DEFINED VAR_STRINGS)
message(SEND_ERROR
"\"${VAL}\" is not valid override value for \"${VAR}\"."
" Please select value from \"${VAR_STRINGS}\"\n")
@@ -10,10 +10,15 @@ function(override_cache VAR VAL)
endfunction()
function(add_option NAME HELP_STRING DEFAULT VALUES)
if(VALUES STREQUAL "yes;no")
# Set the default value for the option.
set(${NAME} ${DEFAULT} CACHE BOOL ${HELP_STRING})
else()
# Set the default value for the option.
set(${NAME} ${DEFAULT} CACHE STRING ${HELP_STRING})
# Set the list of allowed values for the option.
set_property(CACHE ${NAME} PROPERTY STRINGS ${VALUES})
endif()
if(DEFINED ${NAME})
list(FIND VALUES ${${NAME}} IDX)