cmake: Remove custom build types
[quassel.git] / cmake / BuildType.cmake
diff --git a/cmake/BuildType.cmake b/cmake/BuildType.cmake
new file mode 100644 (file)
index 0000000..a1b0a70
--- /dev/null
@@ -0,0 +1,21 @@
+# Derived from Marcus D. Hanwell's suggestion
+# https://blog.kitware.com/cmake-and-the-default-build-type/
+
+# Set a default build type if none was specified
+set(default_build_type "Release")
+
+# For builds from Git, default to Debug
+if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
+    set(default_build_type "Debug")
+endif()
+
+# Multi-config generators (such as the VS one) will set the config types
+if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+    message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
+    set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
+        STRING "Choose the type of build." FORCE)
+    # Set the possible values of build type for cmake-gui
+    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+else()
+    message(STATUS "CMake build type: ${CMAKE_BUILD_TYPE}")
+endif()