mirror of
https://github.com/1dot13/source.git
synced 2026-08-19 14:20:30 +02:00
simplify the language/executable validation function (#79)
* simplify the language/executable validation function removing the 'ALL' corner-case so that the default behavior is to configure all valid languages and applications allows to simplify this function quite a bit * keep the CMakePreset.json options listed for ease of use
This commit is contained in:
+11
-16
@@ -1,20 +1,15 @@
|
||||
function(ValidateOptions ValidOptions ChoiceName DefaultChoice Choice RetVal)
|
||||
function(ValidateOptions ValidOptions ChoiceName Choice RetVal)
|
||||
if(Choice)
|
||||
if(Choice MATCHES "ALL")
|
||||
set(${RetVal} ${ValidOptions} PARENT_SCOPE)
|
||||
message(STATUS "ALL ${ChoiceName} option set, configuring ${ValidOptions}.")
|
||||
else()
|
||||
foreach(x IN LISTS Choice)
|
||||
if(x IN_LIST ValidOptions)
|
||||
message(STATUS "Configuring for ${x}.")
|
||||
else()
|
||||
message(FATAL_ERROR "${x} not supported. The supported ${ChoiceName} are: ${ValidOptions}.")
|
||||
endif()
|
||||
set(${RetVal} ${Choice} PARENT_SCOPE)
|
||||
endforeach()
|
||||
endif()
|
||||
foreach(x IN LISTS Choice)
|
||||
if(NOT x IN_LIST ValidOptions)
|
||||
message(FATAL_ERROR "${ChoiceName}=\"${x}\" is not supported. Valid options are: ${ValidOptions}.")
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
set(${RetVal} ${DefaultChoice} PARENT_SCOPE)
|
||||
message(STATUS "No -D${ChoiceName}= parameter, configuring ${DefaultChoice} by default.")
|
||||
set(isDefault "by default.")
|
||||
set(Choice ${ValidOptions})
|
||||
endif()
|
||||
message(STATUS "Configuring ${ChoiceName}=\"${Choice}\" ${isDefault}")
|
||||
|
||||
set(${RetVal} ${Choice} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
Reference in New Issue
Block a user