From d57bbeb634ff8ef93f4e2017b0787b0ee9004e55 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 8 Oct 2019 16:33:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A7=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibCodeCoverage.cmake | 56 ++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/CMLibCodeCoverage.cmake b/CMLibCodeCoverage.cmake index 50d9898..d472b80 100644 --- a/CMLibCodeCoverage.cmake +++ b/CMLibCodeCoverage.cmake @@ -1,34 +1,38 @@ function(add_code_coverage) list(GET ARGN 0 _target) - find_program(LCOV_EXE NAMES lcov) - find_program(GENHTML_EXE NAMES genhtml) - target_compile_options(${_target} PUBLIC "--coverage") - get_target_property(LF ${_target} LINK_FLAGS) - list(APPEND LF "--coverage") - set_target_properties(${_target} PROPERTIES LINK_FLAGS ${LF}) + if(CMAKE_CXX_COMPILER_IS_GCC) + find_program(LCOV_EXE NAMES lcov) + find_program(GENHTML_EXE NAMES genhtml) + target_compile_options(${_target} PUBLIC "--coverage") + get_target_property(LF ${_target} LINK_FLAGS) + string(APPEND LF " --coverage") + set_target_properties(${_target} PROPERTIES LINK_FLAGS ${LF}) - if(LCOV_EXE) - add_custom_target(coverage-${_target} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${LCOV_EXE} - --test-name - ${_target} - --output - "${_target}.lcov" - --capture - --directory - ${CMAKE_BINARY_DIR}) - add_dependencies(coverage-${_target} ${_target}) - - if(GENHTML_EXE) - add_custom_target(coverage-report-${_target} + if(LCOV_EXE) + add_custom_target(coverage-${_target} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${GENHTML_EXE} - --output-directory - "report-${_target}" - "${_target}.lcov") - add_dependencies(coverage-report-${_target} coverage-${_target}) + COMMAND ${LCOV_EXE} + --test-name + ${_target} + --output + "${_target}.lcov" + --capture + --directory + ${CMAKE_BINARY_DIR}) + add_dependencies(coverage-${_target} ${_target}) + + if(GENHTML_EXE) + add_custom_target(coverage-report-${_target} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${GENHTML_EXE} + --output-directory + "report-${_target}" + "${_target}.lcov") + add_dependencies(coverage-report-${_target} coverage-${_target}) + endif() endif() + else() + message("Only GCC is supported for code coverage") endif() endfunction()