43 lines
1.4 KiB
CMake
43 lines
1.4 KiB
CMake
# (c) https://github.com/coderefinery/autocmake/blob/master/AUTHORS.md
|
|
# licensed under BSD-3: https://github.com/coderefinery/autocmake/blob/master/LICENSE
|
|
|
|
#.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
|
|
#
|
|
# autocmake.yml configuration::
|
|
#
|
|
# docopt: "--coverage Enable code coverage [default: False]."
|
|
# define: "'-DENABLE_CODE_COVERAGE={0}'.format(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()
|