Skip to content

Commit 1d1800a

Browse files
authored
Merge pull request #7380 from oltolm/yesno
make "yes;no" cmake options boolean instead of string
2 parents 287323a + 78b8ea3 commit 1d1800a

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

cmake/functions.cmake

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
function(override_cache VAR VAL)
22
get_property(VAR_STRINGS CACHE ${VAR} PROPERTY STRINGS)
33
LIST(FIND VAR_STRINGS ${VAL} CK)
4-
if(-1 EQUAL ${CK})
4+
if(-1 EQUAL ${CK} AND DEFINED VAR_STRINGS)
55
message(SEND_ERROR
66
"\"${VAL}\" is not valid override value for \"${VAR}\"."
77
" Please select value from \"${VAR_STRINGS}\"\n")
@@ -10,10 +10,15 @@ function(override_cache VAR VAL)
1010
endfunction()
1111

1212
function(add_option NAME HELP_STRING DEFAULT VALUES)
13-
# Set the default value for the option.
14-
set(${NAME} ${DEFAULT} CACHE STRING ${HELP_STRING})
15-
# Set the list of allowed values for the option.
16-
set_property(CACHE ${NAME} PROPERTY STRINGS ${VALUES})
13+
if(VALUES STREQUAL "yes;no")
14+
# Set the default value for the option.
15+
set(${NAME} ${DEFAULT} CACHE BOOL ${HELP_STRING})
16+
else()
17+
# Set the default value for the option.
18+
set(${NAME} ${DEFAULT} CACHE STRING ${HELP_STRING})
19+
# Set the list of allowed values for the option.
20+
set_property(CACHE ${NAME} PROPERTY STRINGS ${VALUES})
21+
endif()
1722

1823
if(DEFINED ${NAME})
1924
list(FIND VALUES ${${NAME}} IDX)

0 commit comments

Comments
 (0)