stage1: limit cmake checks on build type

Various maintainers pass custom build types and we don't need to check
those. We are interested only in checking and diagnosing common errors
for Zig project supported types.

Check is now limited to look for case-mismatch only on the well-known
values { Debug, Release, RelWithDebInfo, MinSizeRel }.
This commit is contained in:
Michael Dusan 2020-02-12 17:23:48 -05:00
parent ab4ea5d3cf
commit 471662f7c9
No known key found for this signature in database
GPG Key ID: ED4C5BA849FA1B74

View File

@ -5,16 +5,21 @@ if(NOT CMAKE_BUILD_TYPE)
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif()
set(_list "None;Debug;Release;RelWithDebInfo;MinSizeRel")
list(FIND _list ${CMAKE_BUILD_TYPE} _index)
if(${_index} EQUAL -1)
string(REPLACE ";" ", " _list_pretty "${_list}")
message("::")
message(":: ERROR: Invalid build type: ${CMAKE_BUILD_TYPE}")
message("::")
message(":: valid types: { ${_list_pretty} }")
message("::")
message(FATAL_ERROR)
set(_list "Debug;Release;RelWithDebInfo;MinSizeRel")
string(TOLOWER "${_list}" _list_lower)
string(TOLOWER ${CMAKE_BUILD_TYPE} _build_type_lower)
list(FIND _list_lower "${_build_type_lower}" _index)
if(NOT ${_index} EQUAL -1)
list(FIND _list "${CMAKE_BUILD_TYPE}" _index)
if(${_index} EQUAL -1)
string(REPLACE ";" ", " _list_pretty "${_list}")
message("::")
message(":: ERROR: build type case-mismatch: ${CMAKE_BUILD_TYPE}")
message("::")
message(":: valid types: { ${_list_pretty} }")
message("::")
message(FATAL_ERROR)
endif()
endif()
if(NOT CMAKE_INSTALL_PREFIX)