You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
option( COVERAGE "Enable collection of coverage statistics" OFF )
if (COVERAGE)
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
#message(SEND_ERROR "Coverage collection with clang is not supported yet.")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -g -O0")
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
add_custom_target(coverage-collect COMMAND ${CMAKE_SOURCE_DIR}/cmake/coverage-clang.sh ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_BUILD_DIR}
)
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage --coverage -g -O0")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
add_custom_target(coverage-collect COMMAND lcov --directory . --zerocounters
COMMAND make test
COMMAND lcov --directory . --base-directory . --capture -o coverage.info
COMMAND lcov --remove coverage.info '/usr/*' 'build/resources/*' 'src/tests/*' --output-file coverage.info
COMMAND genhtml coverage.info -o "coverage/"
WORKING_DIRECTORY ${CMAKE_BUILD_DIR}
)
endif()
endif()
|