diff --git a/cmake/phoenix_base_project.cmake b/cmake/phoenix_base_project.cmake
index 8e7c218801f362816108867dc4588a3d002edebb..8e0507a4a9de3e40cf0f9cdebb67c424c0e14636 100644
--- a/cmake/phoenix_base_project.cmake
+++ b/cmake/phoenix_base_project.cmake
@@ -21,10 +21,18 @@ function(phoenix_base_project programName programVersion programDescritpion prog
 		set(SELF_TESTS_MODE yes CACHE BOOL "Self test mode")
 		message(STATUS "SELF_TESTS_MODE = ${SELF_TESTS_MODE}")
 		
-		
 		set(PHOENIX_FORCE_PULL_MODULE no CACHE BOOL "Say if the submodule have to be pulled every time or not")
 		
-		add_definitions(--std=c++11 -Wall -Werror -g -O2 -D__PROGRAM_VERSION__="${PROGRAM_VERSION}")
+		if(CMAKE_BUILD_TYPE STREQUAL "Coverage")
+			message(STATUS "Build for tests COVERAGE")
+			set(CTEST_COVERAGE_COMMAND "gcov")
+			set(SELF_TESTS_MODE yes)
+			set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -Wall -Werror -g -O0  -fprofile-arcs -ftest-coverage" PARENT_SCOPE)
+		else()
+			set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -Wall -Werror -g -O2" PARENT_SCOPE)
+		endif()
+		
+		add_definitions(-D__PROGRAM_VERSION__="${PROGRAM_VERSION}")
 		
 		if(DOC_MODE)
 			add_subdirectory(doc)