diff options
author | Dominik Holland <dominik.holland@qt.io> | 2024-03-06 19:49:35 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2024-03-07 11:25:19 +0000 |
commit | d304493eb9250d2869cd958b4c5ef87fc78b7a53 (patch) | |
tree | 197cc94fdd2e2b4cb67fd6cabdc57622a8092619 | |
parent | c92765fed579b7239d4292cafda9ec3a2c10eb37 (diff) |
CMake: Simplify the code-coverage setup again
Change-Id: I036da3a2887d354ac755197d1803744946062a2a
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 55afdb281e642f5a10ac4af88c26bfebc1d1bfdf)
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
-rw-r--r-- | CMakeLists.txt | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0fca2a4e..80308f65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,12 +84,7 @@ if(AM_COVERAGE) '${CMAKE_CURRENT_BINARY_DIR}/*' ) - if(QT_BUILD_STANDALONE_TESTS) - # Coin splits the build into two separate directories, so we need to merge the coverage info - set(GCOV_EXTRA_FOLDER "../qtapplicationmanager_build") - set(LCOV_EXTRA_ARGS -d ${GCOV_EXTRA_FOLDER}) - list(APPEND GCOV_EXCLUDE '/home/qt/work/qt/qtapplicationmanager_build/*') - elseif(QT_SOURCE_TREE) + if(QT_SOURCE_TREE AND NOT DEFINED ENV{HOST_OS_COIN}) string(REGEX REPLACE "/qtbase$" "" qtSrcDir ${QT_SOURCE_TREE}) list(APPEND GCOV_EXCLUDE '${qtSrcDir}/*') endif() @@ -104,10 +99,10 @@ if(AM_COVERAGE) COMMAND sh -c 'which genhtml >/dev/null || { echo "The genhtml tool is not available." && exit 2 \; }' COMMAND sh -c 'lcov --version | grep -q "^lcov: LCOV version 2\." || { echo "The lcov tool must be version 2." && exit 2 \; }' COMMAND find . \\\( -name \"*.gcov-info\" -o -name \"*.gcda\" \\\) -print0 | xargs -0 rm -f - COMMAND lcov -keep-going -c -i -d . ${LCOV_EXTRA_ARGS} --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/base.gcov-info" + COMMAND lcov -keep-going -c -i -d . --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/base.gcov-info" COMMAND ctest --test-dir tests/auto --verbose --repeat until-pass:3 - COMMAND lcov -keep-going -c -d . ${LCOV_EXTRA_ARGS} --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/test.gcov-info" - COMMAND lcov -keep-going --rc branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/temp.gcov-info" `find . ${GCOV_EXTRA_FOLDER} -name \"*.gcov-info\" | xargs -n1 echo -a` + COMMAND lcov -keep-going -c -d . --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/test.gcov-info" + COMMAND lcov -keep-going --rc branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/temp.gcov-info" `find . -name \"*.gcov-info\" | xargs -n1 echo -a` COMMAND lcov -keep-going --rc branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.gcov-info" -r temp.gcov-info ${GCOV_EXCLUDE} COMMAND rm -f base.gcov-info test.gcov-info temp.gcov-info COMMAND genhtml -o coverage-report -s -f -t "${PROJECT_NAME}" --legend --branch-coverage --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 --demangle-cpp "c++filt" ${PROJECT_NAME}.gcov-info |