@@ -156,20 +156,27 @@ else()
156
156
endif ()
157
157
158
158
# Define custom "Coverage" build type.
159
- set (CMAKE_C_FLAGS_COVERAGE "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O0 -DCOVERAGE=1 --coverage" CACHE STRING
160
- "Flags used by the C compiler during \" Coverage\" builds."
161
- )
162
- set (CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} --coverage" CACHE STRING
163
- "Flags used for linking binaries during \" Coverage\" builds."
164
- )
165
- set (CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} --coverage" CACHE STRING
166
- "Flags used by the shared libraries linker during \" Coverage\" builds."
167
- )
168
- mark_as_advanced (
169
- CMAKE_C_FLAGS_COVERAGE
170
- CMAKE_EXE_LINKER_FLAGS_COVERAGE
171
- CMAKE_SHARED_LINKER_FLAGS_COVERAGE
172
- )
159
+ # The list of default build targets depends on whether they are being built for coverage.
160
+ # This functionality is limited to generators that support it.
161
+ if (CMAKE_GENERATOR MATCHES "Make|Ninja" )
162
+ set (CMAKE_C_FLAGS_COVERAGE "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O0 -DCOVERAGE=1 --coverage" CACHE STRING
163
+ "Flags used by the C compiler during \" Coverage\" builds."
164
+ )
165
+ set (CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} --coverage" CACHE STRING
166
+ "Flags used for linking binaries during \" Coverage\" builds."
167
+ )
168
+ set (CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} --coverage" CACHE STRING
169
+ "Flags used by the shared libraries linker during \" Coverage\" builds."
170
+ )
171
+ if (CMAKE_GENERATOR STREQUAL "Ninja Multi-Config" )
172
+ list (APPEND CMAKE_CONFIGURATION_TYPES "Coverage" )
173
+ endif ()
174
+ mark_as_advanced (
175
+ CMAKE_C_FLAGS_COVERAGE
176
+ CMAKE_EXE_LINKER_FLAGS_COVERAGE
177
+ CMAKE_SHARED_LINKER_FLAGS_COVERAGE
178
+ )
179
+ endif ()
173
180
174
181
get_property (is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG )
175
182
if (PROJECT_IS_TOP_LEVEL )
0 commit comments