@@ -6,12 +6,38 @@ find_program(CODECHECKER_EXE NAMES CodeChecker codechecker REQUIRED)
6
6
message (STATUS "Found SCA: CodeChecker (${CODECHECKER_EXE} )" )
7
7
8
8
# Get CodeChecker specific variables
9
+ zephyr_get (CODECHECKER_ANALYZE_JOBS )
9
10
zephyr_get (CODECHECKER_ANALYZE_OPTS )
11
+ zephyr_get (CODECHECKER_CONFIG_FILE )
10
12
zephyr_get (CODECHECKER_EXPORT )
13
+ zephyr_get (CODECHECKER_NAME )
11
14
zephyr_get (CODECHECKER_PARSE_EXIT_STATUS )
12
15
zephyr_get (CODECHECKER_PARSE_OPTS )
16
+ zephyr_get (CODECHECKER_PARSE_SKIP )
13
17
zephyr_get (CODECHECKER_STORE )
14
18
zephyr_get (CODECHECKER_STORE_OPTS )
19
+ zephyr_get (CODECHECKER_STORE_TAG )
20
+ zephyr_get (CODECHECKER_TRIM_PATH_PREFIX )
21
+
22
+ if (NOT CODECHECKER_NAME )
23
+ set (CODECHECKER_NAME zephyr )
24
+ endif ()
25
+
26
+ if (CODECHECKER_ANALYZE_JOBS )
27
+ set (CODECHECKER_ANALYZE_JOBS "--jobs;${CODECHECKER_ANALYZE_JOBS} " )
28
+ endif ()
29
+
30
+ if (CODECHECKER_CONFIG_FILE )
31
+ set (CODECHECKER_CONFIG_FILE "--config;${CODECHECKER_CONFIG_FILE} " )
32
+ endif ()
33
+
34
+ if (CODECHECKER_STORE_TAG )
35
+ set (CODECHECKER_STORE_TAG "--tag;${CODECHECKER_STORE_TAG} " )
36
+ endif ()
37
+
38
+ if (CODECHECKER_TRIM_PATH_PREFIX )
39
+ set (CODECHECKER_TRIM_PATH_PREFIX "--trim-path-prefix;${CODECHECKER_TRIM_PATH_PREFIX} " )
40
+ endif ()
15
41
16
42
# CodeChecker uses the compile_commands.json as input
17
43
set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
@@ -31,7 +57,9 @@ add_custom_target(codechecker ALL
31
57
--keep-gcc-include-fixed
32
58
--keep-gcc-intrin
33
59
--output ${output_dir} /codechecker.plist
34
- --name zephyr # Set a default metadata name
60
+ --name ${CODECHECKER_NAME} # Set a default metadata name
61
+ ${CODECHECKER_CONFIG_FILE}
62
+ ${CODECHECKER_ANALYZE_JOBS}
35
63
${CODECHECKER_ANALYZE_OPTS}
36
64
${CMAKE_BINARY_DIR} /compile_commands.json
37
65
|| ${CMAKE_COMMAND} -E true # allow to continue processing results
@@ -67,19 +95,23 @@ if(DEFINED CODECHECKER_EXPORT)
67
95
${output_dir} /codechecker.plist
68
96
--export ${export_item}
69
97
--output ${output_dir} /codechecker.${export_item}
98
+ ${CODECHECKER_CONFIG_FILE}
99
+ ${CODECHECKER_TRIM_PATH_PREFIX}
70
100
${CODECHECKER_PARSE_OPTS}
71
101
BYPRODUCTS ${output_dir} /codechecker.${export_item}
72
102
VERBATIM
73
103
USES_TERMINAL
74
104
COMMAND_EXPAND_LISTS
75
105
)
76
106
endforeach ()
77
- else ( )
107
+ elseif ( NOT CODECHECKER_PARSE_SKIP )
78
108
# Output parse results
79
109
add_custom_command (
80
110
TARGET codechecker POST_BUILD
81
111
COMMAND ${CODECHECKER_EXE} parse
82
112
${output_dir} /codechecker.plist
113
+ ${CODECHECKER_CONFIG_FILE}
114
+ ${CODECHECKER_TRIM_PATH_PREFIX}
83
115
${CODECHECKER_PARSE_OPTS}
84
116
VERBATIM
85
117
USES_TERMINAL
@@ -91,6 +123,9 @@ if(DEFINED CODECHECKER_STORE OR DEFINED CODECHECKER_STORE_OPTS)
91
123
add_custom_command (
92
124
TARGET codechecker POST_BUILD
93
125
COMMAND ${CODECHECKER_EXE} store
126
+ ${CODECHECKER_CONFIG_FILE}
127
+ ${CODECHECKER_STORE_TAG}
128
+ ${CODECHECKER_TRIM_PATH_PREFIX}
94
129
${CODECHECKER_STORE_OPTS}
95
130
${output_dir} /codechecker.plist
96
131
VERBATIM
0 commit comments