Skip to content

Commit 159ad42

Browse files
tpambordanieldegrasse
authored andcommitted
cmake: sca: codechecker: Finish export before exiting
If exporting to multiple formats (e.g., HTML and JSON), do not stop after the first format when errors are found. Instead, continue exporting to all specified formats and only exit afterwards. Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
1 parent e7dd1e5 commit 159ad42

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

cmake/sca/codechecker/sca.cmake

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,17 @@ add_dependencies(codechecker-cleanup codechecker)
109109
# If 'codechecker parse' returns an exit status of '2', it means more than 0
110110
# issues were detected. Suppress the exit status by default, but permit opting
111111
# in to the failure.
112-
if(NOT CODECHECKER_PARSE_EXIT_STATUS)
113-
set(CODECHECKER_PARSE_OPTS ${CODECHECKER_PARSE_OPTS} || ${CMAKE_COMMAND} -E true)
112+
set(CODECHECKER_PARSE_OPTS ${CODECHECKER_PARSE_OPTS} || ${CMAKE_COMMAND} -E touch ${output_dir}/codechecker.failed)
113+
if(CODECHECKER_PARSE_EXIT_STATUS)
114+
add_custom_target(codechecker-parse-check ALL
115+
COMMAND ! ${CMAKE_COMMAND} -E rm ${output_dir}/codechecker.failed 2>/dev/null
116+
)
117+
else()
118+
add_custom_target(codechecker-parse-check ALL
119+
COMMAND ${CMAKE_COMMAND} -E rm -f ${output_dir}/codechecker.failed 2>/dev/null
120+
)
114121
endif()
122+
add_dependencies(codechecker-cleanup codechecker-parse-check)
115123

116124
if(DEFINED CODECHECKER_EXPORT)
117125
string(REPLACE "," ";" export_list ${CODECHECKER_EXPORT})
@@ -133,7 +141,7 @@ if(DEFINED CODECHECKER_EXPORT)
133141
COMMAND_EXPAND_LISTS
134142
)
135143
add_dependencies(codechecker-report-${export_item} codechecker)
136-
add_dependencies(codechecker-cleanup codechecker-report-${export_item})
144+
add_dependencies(codechecker-parse-check codechecker-report-${export_item})
137145
endforeach()
138146
elseif(NOT CODECHECKER_PARSE_SKIP)
139147
# Output parse results
@@ -148,7 +156,7 @@ elseif(NOT CODECHECKER_PARSE_SKIP)
148156
COMMAND_EXPAND_LISTS
149157
)
150158
add_dependencies(codechecker-parse codechecker)
151-
add_dependencies(codechecker-cleanup codechecker-parse)
159+
add_dependencies(codechecker-parse-check codechecker-parse)
152160
endif()
153161

154162
if(DEFINED CODECHECKER_STORE OR DEFINED CODECHECKER_STORE_OPTS)

0 commit comments

Comments
 (0)