From a83ad318987ccb10e7fff613c63725dfad1b09c7 Mon Sep 17 00:00:00 2001
From: Tomas Pecka <tomas.pecka@fit.cvut.cz>
Date: Mon, 25 Nov 2019 12:07:03 +0100
Subject: [PATCH] CMake: Force CMAKE_BUILD_TYPE set

---
 CMake/Modules/CompilerFlags.cmake   |  3 ++-
 CMake/templates/CMakeLists_root.txt | 15 +++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/CMake/Modules/CompilerFlags.cmake b/CMake/Modules/CompilerFlags.cmake
index 63b5b17c2c..d530fb26b6 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 84202c8a4a..b9b7b7e96c 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()
-- 
GitLab