@@ -11,12 +11,12 @@ function(setup_target_coverage target_name)
1111 if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" )
1212 target_compile_options (${target_name} PRIVATE --coverage )
1313 target_link_libraries (${target_name} PRIVATE --coverage )
14-
14+
1515 # Add target-specific coverage properties
1616 set_target_properties (${target_name} PROPERTIES
1717 COVERAGE_ENABLED TRUE
1818 )
19-
19+
2020 message (STATUS "Coverage enabled for target: ${target_name} " )
2121 endif ()
2222 endif ()
@@ -49,35 +49,35 @@ function(create_module_coverage_target module_name)
4949 if (NOT ATOM_ENABLE_COVERAGE OR NOT LCOV_PROGRAM OR NOT GENHTML_PROGRAM)
5050 return ()
5151 endif ()
52-
52+
5353 string (TOUPPER ${module_name} MODULE_UPPER)
5454 if (NOT ATOM_BUILD_${MODULE_UPPER} )
5555 return ()
5656 endif ()
57-
57+
5858 set (MODULE_COVERAGE_DIR "${CMAKE_BINARY_DIR} /coverage/${module_name} " )
5959 set (MODULE_COVERAGE_INFO "${MODULE_COVERAGE_DIR} /${module_name} _coverage.info" )
6060 set (MODULE_COVERAGE_CLEANED "${MODULE_COVERAGE_DIR} /${module_name} _coverage_cleaned.info" )
6161 set (MODULE_COVERAGE_HTML "${MODULE_COVERAGE_DIR} /html" )
62-
62+
6363 file (MAKE_DIRECTORY ${MODULE_COVERAGE_DIR} )
64-
64+
6565 add_coverage_exclude_patterns ()
66-
66+
6767 add_custom_target (coverage-${module_name}
6868 # Reset counters
6969 COMMAND ${LCOV_PROGRAM} --directory . --zerocounters
70-
70+
7171 # Run module-specific tests
7272 COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -R ".*${module_name} .*"
73-
73+
7474 # Capture coverage data
7575 COMMAND ${LCOV_PROGRAM} --directory . --capture --output-file ${MODULE_COVERAGE_INFO}
76-
76+
7777 # Clean coverage data
7878 COMMAND ${LCOV_PROGRAM} --remove ${MODULE_COVERAGE_INFO} ${COVERAGE_EXCLUDE_PATTERNS}
7979 --output-file ${MODULE_COVERAGE_CLEANED}
80-
80+
8181 # Generate HTML report
8282 COMMAND ${GENHTML_PROGRAM} ${MODULE_COVERAGE_CLEANED}
8383 --output-directory ${MODULE_COVERAGE_HTML}
@@ -87,11 +87,11 @@ function(create_module_coverage_target module_name)
8787 --demangle-cpp
8888 --function-coverage
8989 --branch-coverage
90-
90+
9191 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
9292 COMMENT "Generating coverage report for ${module_name} module"
9393 )
94-
94+
9595 message (STATUS "Created coverage target: coverage-${module_name} " )
9696endfunction ()
9797
@@ -100,43 +100,43 @@ function(setup_coverage_reporting)
100100 if (NOT ATOM_ENABLE_COVERAGE)
101101 return ()
102102 endif ()
103-
103+
104104 # Verify compiler support
105105 if (NOT CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" )
106106 message (WARNING "Coverage analysis requires GCC or Clang compiler" )
107107 return ()
108108 endif ()
109-
109+
110110 # Find required tools
111111 find_program (GCOV_PROGRAM gcov )
112112 find_program (LCOV_PROGRAM lcov )
113113 find_program (GENHTML_PROGRAM genhtml )
114-
114+
115115 if (NOT GCOV_PROGRAM)
116116 message (WARNING "gcov not found - coverage analysis disabled" )
117117 return ()
118118 endif ()
119-
119+
120120 if (NOT LCOV_PROGRAM)
121121 message (WARNING "lcov not found - HTML reports disabled" )
122122 return ()
123123 endif ()
124-
124+
125125 if (NOT GENHTML_PROGRAM)
126126 message (WARNING "genhtml not found - HTML reports disabled" )
127127 return ()
128128 endif ()
129-
129+
130130 # Set global coverage flags
131131 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage -fprofile-arcs -ftest-coverage" PARENT_SCOPE )
132132 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage -fprofile-arcs -ftest-coverage" PARENT_SCOPE )
133133 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage" PARENT_SCOPE )
134134 set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage" PARENT_SCOPE )
135-
135+
136136 # Create coverage output directory
137137 set (COVERAGE_OUTPUT_DIR "${CMAKE_BINARY_DIR} /coverage" )
138138 file (MAKE_DIRECTORY ${COVERAGE_OUTPUT_DIR} )
139-
139+
140140 message (STATUS "Coverage reporting configured successfully" )
141141 message (STATUS " - gcov: ${GCOV_PROGRAM} " )
142142 message (STATUS " - lcov: ${LCOV_PROGRAM} " )
0 commit comments