diff --git a/CMakeLists.txt b/CMakeLists.txt
index cdc93b4aafa0b85d93afd652de9e7a6edacc318b..8fa0c944464ccefe6f2db36c76246fbe6be02116 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,10 +22,34 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 set(PASTIS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 set(PASTIS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
 
+# Add new build types
+message("* Adding build types...")
+SET(CMAKE_CXX_FLAGS_COVERAGE
+  "-g -Wall -O0 --coverage"
+  CACHE STRING "Flags used by the C++ compiler during coverage builds."
+  FORCE )
+SET(CMAKE_C_FLAGS_COVERAGE
+  "-g -Wall -O0 --coverage"
+  CACHE STRING "Flags used by the C compiler during coverage builds."
+  FORCE )
+SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE
+  "--coverage"
+  CACHE STRING "Flags used for linking binaries during coverage builds."
+  FORCE )
+SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
+  "--coverage"
+  CACHE STRING "Flags used by the shared libraries linker during coverage builds."
+  FORCE )
+MARK_AS_ADVANCED(
+  CMAKE_CXX_FLAGS_COVERAGE
+  CMAKE_C_FLAGS_COVERAGE
+  CMAKE_EXE_LINKER_FLAGS_COVERAGE
+  CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
+
 # Default build type is RelWIthDebInfo
 if(NOT CMAKE_BUILD_TYPE)
   set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
-      "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
+      "Choose the type of build: Debug Release RelWithDebInfo MinSizeRel Coverage."
       FORCE)
 endif(NOT CMAKE_BUILD_TYPE)