[PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to cover math.h

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri May 31 14:18:36 CEST 2024


math.h is an exception to the C compatibility header rule, as we prefer
using cmath. Extend the IncludeCheck to warn about it.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 utils/checkstyle.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 518be0897db5..f3604299de94 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -568,7 +568,7 @@ class IncludeChecker(StyleChecker):
     headers = ('cassert', 'cctype', 'cerrno', 'cfenv', 'cfloat', 'cinttypes',
                'climits', 'clocale', 'csetjmp', 'csignal', 'cstdarg', 'cstddef',
                'cstdint', 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cuchar',
-               'cwchar', 'cwctype')
+               'cwchar', 'cwctype', 'math.h')
     include_regex = re.compile(r'^#include <([a-z.]*)>')
 
     def __init__(self, content):
@@ -588,9 +588,15 @@ class IncludeChecker(StyleChecker):
             if header not in IncludeChecker.headers:
                 continue
 
-            header = header[1:] + '.h'
+            if header.endswith('.h'):
+                header_type = 'C++'
+                header = 'c' + header[:-2]
+            else:
+                header_type = 'C compatibility'
+                header = header[1:] + '.h'
+
             issues.append(StyleIssue(line_number, line,
-                                     'C compatibility header <%s> is preferred' % header))
+                                     f'{header_type} header <{header}> is preferred'))
 
         return issues
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list