build: add DebugCoverage build type

Add a new build type to capture compiler flags settings needed for GCOV
based coverage measurement. This build type is only supported by
environments targeting Linux.
The aim is to allow extending coverage measurement to sub-builds
(especially libts).

Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
Change-Id: I1de619c0b96c1d2d519432458c3eac4aed947acf
diff --git a/environments/arm-linux/default_toolchain_file.cmake b/environments/arm-linux/default_toolchain_file.cmake
index 5869fa4..7e565dd 100644
--- a/environments/arm-linux/default_toolchain_file.cmake
+++ b/environments/arm-linux/default_toolchain_file.cmake
@@ -55,7 +55,7 @@
 endif()
 
 # Set flags affecting all build types supporting debugging.
-foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO)
+foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO DEBUGCOVERAGE)
 	string(APPEND CMAKE_C_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}")
 	string(APPEND CMAKE_CXX_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}")
 endforeach()
@@ -66,11 +66,13 @@
 string(APPEND CMAKE_C_FLAGS_MINSIZWITHDEBINFO_INIT " -Os")
 string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -O2")
 string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -O2")
+string(APPEND CMAKE_C_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage")
 string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " -O0")
 string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT  " -Os")
 string(APPEND CMAKE_CXX_FLAGS_MINSIZWITHDEBINFO_INIT " -Os")
 string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -O2")
 string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -O2")
+string(APPEND CMAKE_CXX_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage")
 
 include($ENV{TS_ROOT}/tools/cmake/compiler/GCC.cmake REQUIRED)
 include($ENV{TS_ROOT}/tools/cmake/compiler/config_iface.cmake REQUIRED)
diff --git a/environments/linux-pc/default_toolchain_file.cmake b/environments/linux-pc/default_toolchain_file.cmake
index 50ef184..2215d6b 100644
--- a/environments/linux-pc/default_toolchain_file.cmake
+++ b/environments/linux-pc/default_toolchain_file.cmake
@@ -25,7 +25,7 @@
 endif()
 
 # Set flags affecting all build types supporting debugging.
-foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO)
+foreach(_b_type IN ITEMS DEBUG RELWITHDEBINFO MINSIZWITHDEBINFO DEBUGCOVERAGE)
 	string(APPEND CMAKE_C_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}")
 	string(APPEND CMAKE_CXX_FLAGS_${_b_type}_INIT " ${TS_DEBUG_INFO_FLAGS}")
 endforeach()
@@ -36,11 +36,13 @@
 string(APPEND CMAKE_C_FLAGS_MINSIZWITHDEBINFO_INIT " -Os")
 string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -O2")
 string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -O2")
+string(APPEND CMAKE_C_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage")
 string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " -O0")
 string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT  " -Os")
 string(APPEND CMAKE_CXX_FLAGS_MINSIZWITHDEBINFO_INIT " -Os")
 string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -O2")
 string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -O2")
+string(APPEND CMAKE_CXX_FLAGS_DEBUGCOVERAGE_INIT " -O0 -coverage")
 
 include($ENV{TS_ROOT}/tools/cmake/compiler/GCC.cmake REQUIRED)
 include($ENV{TS_ROOT}/tools/cmake/compiler/config_iface.cmake REQUIRED)