Skip to content

Commit c1a621a

Browse files
committed
Add C variables for clang-tidy/iwyu and cppcheck
The tools.cmake file included a number of tools, but only implemented their use just in C++. This adds their use with C.
1 parent f74b505 commit c1a621a

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

tools.cmake

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (C) 2018-2020 by George Cave - [email protected]
2+
# Copyright (C) 2018-2023 by George Cave - [email protected]
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
55
# use this file except in compliance with the License. You may obtain a copy of
@@ -21,6 +21,9 @@ option(CPPCHECK "Turns on cppcheck processing if it is found." OFF)
2121
# as the options set.
2222
macro(clang_tidy)
2323
if(CLANG_TIDY AND CLANG_TIDY_EXE)
24+
set(CMAKE_C_CLANG_TIDY
25+
${CLANG_TIDY_EXE} ${ARGN}
26+
CACHE STRING "" FORCE)
2427
set(CMAKE_CXX_CLANG_TIDY
2528
${CLANG_TIDY_EXE} ${ARGN}
2629
CACHE STRING "" FORCE)
@@ -31,6 +34,9 @@ endmacro()
3134
# used as the options set.
3235
macro(include_what_you_use)
3336
if(IWYU AND IWYU_EXE)
37+
set(CMAKE_C_INCLUDE_WHAT_YOU_USE
38+
${IWYU_EXE} ${ARGN}
39+
CACHE STRING "" FORCE)
3440
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
3541
${IWYU_EXE} ${ARGN}
3642
CACHE STRING "" FORCE)
@@ -41,6 +47,9 @@ endmacro()
4147
# options set.
4248
macro(cppcheck)
4349
if(CPPCHECK AND CPPCHECK_EXE)
50+
set(CMAKE_C_CPPCHECK
51+
${CPPCHECK_EXE} ${ARGN}
52+
CACHE STRING "" FORCE)
4453
set(CMAKE_CXX_CPPCHECK
4554
${CPPCHECK_EXE} ${ARGN}
4655
CACHE STRING "" FORCE)
@@ -53,17 +62,26 @@ if(CLANG_TIDY_EXE)
5362
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
5463
if(NOT CLANG_TIDY)
5564
message(STATUS "clang-tidy NOT ENABLED via 'CLANG_TIDY' variable!")
65+
set(CMAKE_C_CLANG_TIDY
66+
""
67+
CACHE STRING "" FORCE) # delete it
5668
set(CMAKE_CXX_CLANG_TIDY
5769
""
5870
CACHE STRING "" FORCE) # delete it
5971
endif()
6072
elseif(CLANG_TIDY)
6173
message(SEND_ERROR "Cannot enable clang-tidy, as executable not found!")
74+
set(CMAKE_C_CLANG_TIDY
75+
""
76+
CACHE STRING "" FORCE) # delete it
6277
set(CMAKE_CXX_CLANG_TIDY
6378
""
6479
CACHE STRING "" FORCE) # delete it
6580
else()
6681
message(STATUS "clang-tidy not found!")
82+
set(CMAKE_C_CLANG_TIDY
83+
""
84+
CACHE STRING "" FORCE) # delete it
6785
set(CMAKE_CXX_CLANG_TIDY
6886
""
6987
CACHE STRING "" FORCE) # delete it
@@ -75,18 +93,27 @@ if(IWYU_EXE)
7593
message(STATUS "include-what-you-use found: ${IWYU_EXE}")
7694
if(NOT IWYU)
7795
message(STATUS "include-what-you-use NOT ENABLED via 'IWYU' variable!")
96+
set(CMAKE_C_INCLUDE_WHAT_YOU_USE
97+
""
98+
CACHE STRING "" FORCE) # delete it
7899
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
79100
""
80101
CACHE STRING "" FORCE) # delete it
81102
endif()
82103
elseif(IWYU)
83104
message(
84105
SEND_ERROR "Cannot enable include-what-you-use, as executable not found!")
106+
set(CMAKE_C_INCLUDE_WHAT_YOU_USE
107+
""
108+
CACHE STRING "" FORCE) # delete it
85109
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
86110
""
87111
CACHE STRING "" FORCE) # delete it
88112
else()
89113
message(STATUS "include-what-you-use not found!")
114+
set(CMAKE_C_INCLUDE_WHAT_YOU_USE
115+
""
116+
CACHE STRING "" FORCE) # delete it
90117
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
91118
""
92119
CACHE STRING "" FORCE) # delete it
@@ -97,23 +124,35 @@ mark_as_advanced(FORCE CPPCHECK_EXE)
97124
if(CPPCHECK_EXE)
98125
message(STATUS "cppcheck found: ${CPPCHECK_EXE}")
99126
if(CPPECHECK)
127+
set(CMAKE_C_CPPCHECK
128+
"${CPPCHECK_EXE};--enable=warning,performance,portability,missingInclude;--template=\"[{severity}][{id}] {message} {callstack} \(On {file}:{line}\)\";--suppress=missingIncludeSystem;--quiet;--verbose;--force"
129+
)
100130
set(CMAKE_CXX_CPPCHECK
101131
"${CPPCHECK_EXE};--enable=warning,performance,portability,missingInclude;--template=\"[{severity}][{id}] {message} {callstack} \(On {file}:{line}\)\";--suppress=missingIncludeSystem;--quiet;--verbose;--force"
102132
)
103133
endif()
104134
if(NOT CPPCHECK)
105135
message(STATUS "cppcheck NOT ENABLED via 'CPPCHECK' variable!")
136+
set(CMAKE_C_CPPCHECK
137+
""
138+
CACHE STRING "" FORCE) # delete it
106139
set(CMAKE_CXX_CPPCHECK
107140
""
108141
CACHE STRING "" FORCE) # delete it
109142
endif()
110143
elseif(CPPCHECK)
111144
message(SEND_ERROR "Cannot enable cppcheck, as executable not found!")
145+
set(CMAKE_C_CPPCHECK
146+
""
147+
CACHE STRING "" FORCE) # delete it
112148
set(CMAKE_CXX_CPPCHECK
113149
""
114150
CACHE STRING "" FORCE) # delete it
115151
else()
116152
message(STATUS "cppcheck not found!")
153+
set(CMAKE_C_CPPCHECK
154+
""
155+
CACHE STRING "" FORCE) # delete it
117156
set(CMAKE_CXX_CPPCHECK
118157
""
119158
CACHE STRING "" FORCE) # delete it

0 commit comments

Comments
 (0)