diff --git a/CMakeLists.txt b/CMakeLists.txt
index 37f98ba30c11bab2fd229adfe888755608f23a8c..cf5b06953bb2fc2e2841c38edd40f2532cbcbe67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,12 +55,19 @@ MARK_AS_ADVANCED(
   CMAKE_EXE_LINKER_FLAGS_COVERAGE
   CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
 
+if(CMAKE_BUILD_TYPE)
+  string(REGEX MATCH "(Debug|Release|RelWithDebInfo|MinSizeRel|Coverage)" VALID_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
+  if(NOT VALID_BUILD_TYPE)
+    message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE: '${CMAKE_BUILD_TYPE}'")
+  endif()
+endif()
+
 # Default build type is RelWIthDebInfo
 if(NOT CMAKE_BUILD_TYPE)
   set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
       "Choose the type of build: Debug Release RelWithDebInfo MinSizeRel Coverage."
       FORCE)
-endif(NOT CMAKE_BUILD_TYPE)
+endif()
 
 #------------------------------------------------------