Skip to content

Instantly share code, notes, and snippets.

@kaidokert
Last active December 26, 2019 21:52
Show Gist options
  • Select an option

  • Save kaidokert/0b02e7f14219b58231d985ecc209e1a1 to your computer and use it in GitHub Desktop.

Select an option

Save kaidokert/0b02e7f14219b58231d985ecc209e1a1 to your computer and use it in GitHub Desktop.
Create coverage build configs with cmake
function(extend_custom_config_flags added_conf original_conf flags)
set(CMAKE_C_FLAGS_${added_conf} "${CMAKE_C_FLAGS_${original_conf}} ${flags}" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_${added_conf} "${CMAKE_CXX_FLAGS_${original_conf}} ${flags}" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_${added_conf} "${CMAKE_EXE_LINKER_FLAGS_${original_conf}} ${flags}" CACHE STRING "" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_${added_conf} "${CMAKE_SHARED_LINKER_FLAGS_${original_conf}} ${flags}" CACHE STRING "" FORCE)
set(CMAKE_MODULE_LINKER_FLAGS_${added_conf} "${CMAKE_MODULE_LINKER_FLAGS_${original_conf}} ${flags}" CACHE STRING "" FORCE)
set(CMAKE_STATIC_LINKER_FLAGS_${added_conf} "${CMAKE_STATIC_LINKER_FLAGS_${original_conf}} " CACHE STRING "" FORCE)
endfunction()
if(True)
set(CMAKE_CONFIGURATION_TYPES Debug Release DebugCoverage ReleaseCoverage)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "List of supported configurations.")
mark_as_advanced(CMAKE_CONFIGURATION_TYPES)
extend_custom_config_flags(DEBUGCOVERAGE DEBUG "--coverage")
extend_custom_config_flags(RELEASECOVERAGE RELEASE "--coverage")
endif()
# prevent spam
set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment