#.rst: # # Enables code coverage by appending corresponding compiler flags. # # Variables modified (provided the corresponding language is enabled):: # # CMAKE_Fortran_FLAGS # CMAKE_C_FLAGS # CMAKE_CXX_FLAGS # # Example autocmake.cfg entry:: # # [coverage] # source: https://github.com/scisoft/autocmake/raw/master/modules/code_coverage.cmake # docopt: --coverage Enable code coverage [default: False]. # define: '-DENABLE_CODE_COVERAGE=%s' % arguments['--coverage'] option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF) if(ENABLE_CODE_COVERAGE) if(DEFINED CMAKE_Fortran_COMPILER_ID) if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fprofile-arcs -ftest-coverage") endif() endif() if(DEFINED CMAKE_C_COMPILER_ID) if(CMAKE_C_COMPILER_ID MATCHES GNU) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") endif() endif() if(DEFINED CMAKE_CXX_COMPILER_ID) if(CMAKE_CXX_COMPILER_ID MATCHES GNU) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") endif() if(CMAKE_CXX_COMPILER_ID MATCHES Clang) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") endif() endif() endif()