summaryrefslogtreecommitdiff
path: root/cmake/dependencies/coverage/gcov.cmake
blob: 1b5931551c1a562dbfc648dfd2385828f69f3a40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
include(utils/CompilerUtils)

find_program(GCOV_PATH gcov)

if(GCOV_PATH)
  set(HAVE_GCOV TRUE CACHE INTERNAL "gcov coverage tool available")
  set(DISABLE_COVERAGE ON CACHE BOOL "Disable code coverage analysis")
  if(DISABLE_COVERAGE)
    message(STATUS "gcov found - coverage analysis available (disabled by user)")
  else()
    message(STATUS "Code coverage analysis enabled")
    test_and_set_c_compiler_flag_global(-g)
    test_and_set_c_compiler_flag_global(--coverage)
    add_link_options(--coverage)
  endif()
else()
  set(HAVE_GCOV FALSE CACHE INTERNAL "gcov coverage tool available")
  message(STATUS "gcov not found - coverage analysis not available")
endif()

mark_as_advanced(GCOV_PATH)