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:
majcosta
2023-01-17 23:32:38 -08:00
committed by GitHub
parent 76d5c85605
commit e4295acfec
2 changed files with 13 additions and 18 deletions
+2 -2
View File
@@ -107,10 +107,10 @@ bfVFS
include(cmake/ValidateOptions.cmake)
set(ValidLanguages CHINESE DUTCH ENGLISH FRENCH GERMAN ITALIAN POLISH RUSSIAN)
ValidateOptions("${ValidLanguages}" "Languages" "ENGLISH" "${Languages}" "LangTargets")
ValidateOptions("${ValidLanguages}" "Languages" "${Languages}" "LangTargets")
set(ValidApplications JA2 JA2MAPEDITOR JA2UB JA2UBMAPEDITOR)
ValidateOptions("${ValidApplications}" "Applications" "JA2" "${Applications}" "ApplicationTargets")
ValidateOptions("${ValidApplications}" "Applications" "${Applications}" "ApplicationTargets")
# Due to widespread preprocessor definition abuse in the codebase, practically
+11 -16
View File
@@ -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()