diff --git a/CMake/Modules/CompilerFlags.cmake b/CMake/Modules/CompilerFlags.cmake
index 63b5b17c2c3de81ff7b88f6bc6a8f63fc54764d8..d530fb26b6fb464d894b56b7621d172c4dc9bf6c 100644
--- a/CMake/Modules/CompilerFlags.cmake
+++ b/CMake/Modules/CompilerFlags.cmake
@@ -9,7 +9,8 @@ include(CheckCXXCompilerFlag)
 include(sanitizer) # sanitizer -DSANITIZE=<sanitizer>
 find_package(Backtrace)
 
-message("[Current compiler] ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
+message("[Build type]: ${BUILD_TYPE} (cmake: ${CMAKE_BUILD_TYPE})")
+message("[Compiler] ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
 
 if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "(Clang|GNU)")
 	message(WARNING "Compiler ${CMAKE_CXX_COMPILER_ID} is not officially supported.")
diff --git a/CMake/templates/CMakeLists_root.txt b/CMake/templates/CMakeLists_root.txt
index 84202c8a4a73bb54ba1be2d70ffbd14dfe378dfb..b9b7b7e96c68b8c8830dd32c6896f8c277c45f2d 100644
--- a/CMake/templates/CMakeLists_root.txt
+++ b/CMake/templates/CMakeLists_root.txt
@@ -24,16 +24,19 @@ if (NOT BUILD_TYPE)
 	set(BUILD_TYPE Debug)
 endif()
 string(TOLOWER ${{BUILD_TYPE}} BUILD_TYPE)
-if(NOT BUILD_TYPE MATCHES "(release|snapshot|debug)")
-	message(FATAL_ERROR "Unsupported build type (${{BUILD_TYPE}}). Valid values: Release | Snapshot | Debug ")
-elseif(BUILD_TYPE MATCHES "release")
-	set(CMAKE_BUILD_TYPE Release)
+
+if(BUILD_TYPE MATCHES "release")
+	set(CMAKE_BUILD_TYPE Release CACHE STRING "cmake internal build type" FORCE)
 elseif(BUILD_TYPE MATCHES "snapshot")
-	set(CMAKE_BUILD_TYPE Release)
+	set(CMAKE_BUILD_TYPE Release CACHE STRING "cmake internal build type" FORCE)
 elseif(BUILD_TYPE MATCHES "debug")
-	set(CMAKE_BUILD_TYPE Debug)
+	set(CMAKE_BUILD_TYPE Debug CACHE STRING "cmake internal build type" FORCE)
+else()
+	message(FATAL_ERROR "Unsupported build type (${{BUILD_TYPE}}). Valid values: Release | Snapshot | Debug ")
 endif()
 
+message("[Build type] ${{BUILD_TYPE}} (cmake internal: ${{CMAKE_BUILD_TYPE}})")
+
 if(DEFINED ENV{{CMAKE_BUILD_PARALLEL_LEVEL}})
 	message("[Parallel run] Build: $ENV{{CMAKE_BUILD_PARALLEL_LEVEL}} threads by default")
 endif()