From 620f24fc4f70c9eabdff4c331883150ba5ebe5fe Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Tue, 29 May 2018 21:12:44 +0200 Subject: [PATCH] Fixed tests running for coverage and added llvm support --- CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a444de3a..feaaed9de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,13 +151,24 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Coverage") message(FATAL_ERROR "gcovr not found, cannot perform coverage.") endif() - set(GCOVR_OPTIONS --object-directory="${PASTIS_BINARY_DIR}" -r "${PASTIS_SOURCE_DIR}/src" -e "${PASTIS_SOURCE_DIR}/src/experimental" -e "${PASTIS_SOURCE_DIR}/src/main.cpp") + if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + string(REPLACE "clang++" "llvm-cov" LLVM_COV "${CMAKE_CXX_COMPILER}") + if(NOT EXISTS "${LLVM_COV}") + message(FATAL_ERROR "could not find ${LLVM_COV}, cannot perform coverage (using g++ for coverage is recommended).") + endif() + + set(GCOVR_EXTRA "--gcov-executable=${LLVM_COV} gcov") + endif() + + set(GCOVR_OPTIONS --object-directory="${PASTIS_BINARY_DIR}" -r "${PASTIS_SOURCE_DIR}/src" -e "${PASTIS_SOURCE_DIR}/src/experimental" -e "${PASTIS_SOURCE_DIR}/src/main.cpp" ${GCOVR_EXTRA}) + add_custom_target(coverage ALL - # COMMAND ${unit_test_EXECUTABLE} + COMMAND ctest -j ${PROCESSOR_COUNT} COMMAND ${GCOVR} ${GCOVR_OPTIONS} DEPENDS unit_tests pastis COMMENT "Running gcovr to build coverage report." + USES_TERMINAL ) add_custom_target(coverage-report -- GitLab