@@ -407,38 +407,42 @@ function(target_code_coverage TARGET_NAME)
407
407
# Capture coverage data
408
408
if (${CMAKE_VERSION} VERSION_LESS "3.17.0" )
409
409
add_custom_target (
410
- ccov-capture -${target_code_coverage_COVERAGE_TARGET_NAME}
410
+ ccov-clean -${target_code_coverage_COVERAGE_TARGET_NAME}
411
411
COMMAND ${CMAKE_COMMAND} -E remove -f ${COVERAGE_INFO}
412
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
413
- COMMAND $< TARGET_FILE:${TARGET_NAME} > ${target_code_coverage_ARGS}
414
- COMMAND
415
- ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
416
- ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
417
- ${COVERAGE_INFO}
418
- COMMAND ${EXCLUDE_COMMAND}
419
- DEPENDS ccov-preprocessing ${TARGET_NAME} )
412
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters )
420
413
else ()
421
414
add_custom_target (
422
- ccov-capture -${target_code_coverage_COVERAGE_TARGET_NAME}
415
+ ccov-clean -${target_code_coverage_COVERAGE_TARGET_NAME}
423
416
COMMAND ${CMAKE_COMMAND} -E rm -f ${COVERAGE_INFO}
424
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
425
- COMMAND $< TARGET_FILE:${TARGET_NAME} > ${target_code_coverage_ARGS}
426
- COMMAND
427
- ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
428
- ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
429
- ${COVERAGE_INFO}
430
- COMMAND ${EXCLUDE_COMMAND}
431
- DEPENDS ccov-preprocessing ${TARGET_NAME} )
417
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters )
432
418
endif ()
433
419
434
- # Generates HTML output of the coverage information for perusal
435
420
add_custom_target (
436
- ccov-${target_code_coverage_COVERAGE_TARGET_NAME}
421
+ ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME}
422
+ COMMAND
423
+ ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
424
+ ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
425
+ ${COVERAGE_INFO}
426
+ COMMAND ${EXCLUDE_COMMAND}
427
+ DEPENDS )
428
+
429
+ # Only generates HTML output of the coverage information for perusal
430
+ add_custom_target (
431
+ ccov-html-${target_code_coverage_COVERAGE_TARGET_NAME}
437
432
COMMAND
438
433
${GENHTML_PATH} -o
439
434
${CMAKE_COVERAGE_OUTPUT_DIRECTORY} /${target_code_coverage_COVERAGE_TARGET_NAME}
440
435
${COVERAGE_INFO}
441
436
DEPENDS ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME} )
437
+
438
+ # Generates HTML output of the coverage information for perusal
439
+ add_custom_target (
440
+ ccov-${target_code_coverage_COVERAGE_TARGET_NAME}
441
+ COMMAND
442
+ DEPENDS
443
+ ccov-clean-${target_code_coverage_COVERAGE_TARGET_NAME}
444
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
445
+ ccov-html-${target_code_coverage_COVERAGE_TARGET_NAME} )
442
446
endif ()
443
447
444
448
add_custom_command (
@@ -456,6 +460,11 @@ function(target_code_coverage TARGET_NAME)
456
460
endif ()
457
461
add_dependencies (ccov ccov-${target_code_coverage_COVERAGE_TARGET_NAME} )
458
462
463
+ if (NOT TARGET ccov-html )
464
+ add_custom_target (ccov-html )
465
+ endif ()
466
+ add_dependencies (ccov-html ccov-html-${target_code_coverage_COVERAGE_TARGET_NAME} )
467
+
459
468
if (NOT CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CMAKE_CXX_COMPILER_ID
460
469
MATCHES "GNU" )
461
470
if (NOT TARGET ccov-report )
@@ -629,29 +638,36 @@ function(add_code_coverage_all_targets)
629
638
# Capture coverage data
630
639
if (${CMAKE_VERSION} VERSION_LESS "3.17.0" )
631
640
add_custom_target (
632
- ccov-all-capture
641
+ ccov-all-clean
633
642
COMMAND ${CMAKE_COMMAND} -E remove -f ${COVERAGE_INFO}
634
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
635
- --output-file ${COVERAGE_INFO}
636
- COMMAND ${EXCLUDE_COMMAND}
637
- DEPENDS ccov-preprocessing ccov-all-processing )
643
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters )
638
644
else ()
639
645
add_custom_target (
640
- ccov-all-capture
646
+ ccov-all-clean
641
647
COMMAND ${CMAKE_COMMAND} -E rm -f ${COVERAGE_INFO}
642
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
643
- --output-file ${COVERAGE_INFO}
644
- COMMAND ${EXCLUDE_COMMAND}
645
- DEPENDS ccov-preprocessing ccov-all-processing )
648
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters )
646
649
endif ()
647
650
648
- # Generates HTML output of all targets for perusal
649
651
add_custom_target (
650
- ccov-all
652
+ ccov-all-capture
653
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
654
+ --output-file ${COVERAGE_INFO}
655
+ COMMAND ${EXCLUDE_COMMAND}
656
+ DEPENDS )
657
+
658
+ # Only generates HTML output of all targets for perusal
659
+ add_custom_target (
660
+ ccov-all-html
651
661
COMMAND ${GENHTML_PATH} -o ${CMAKE_COVERAGE_OUTPUT_DIRECTORY} /all-merged
652
662
${COVERAGE_INFO} -p ${CMAKE_SOURCE_DIR}
653
663
DEPENDS ccov-all-capture )
654
664
665
+ # Generates HTML output of all targets for perusal
666
+ add_custom_target (
667
+ ccov-all
668
+ COMMAND
669
+ DEPENDS ccov-preprocessing ccov-all-processing ccov-all-clean ccov-all-html )
670
+
655
671
endif ()
656
672
657
673
add_custom_command (
0 commit comments