[libcamera-devel] [PATCH 2/3] utils: checkstyle: Ensure "..." include style for internal headers

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu May 26 13:00:08 CEST 2022


libcamera uses the "..." include style for internal headers. Enforce it.

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

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 66af96abd402..61783165bef2 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -643,7 +643,7 @@ class DPointerFormatter(Formatter):
 class IncludeOrderFormatter(Formatter):
     patterns = ('*.cpp', '*.h')
 
-    include_regex = re.compile('^#include ["<]([^">]*)[">]')
+    include_regex = re.compile('^#include (["<])([^">]*)([">])')
 
     @classmethod
     def format(cls, filename, data):
@@ -657,7 +657,21 @@ class IncludeOrderFormatter(Formatter):
             if match:
                 # If the current line is an #include statement, add it to the
                 # includes group and continue to the next line.
-                includes.append((line, match.group(1)))
+                open_token = match.group(1)
+                file_name = match.group(2)
+                close_token = match.group(3)
+
+                # Ensure the "..." include style for internal headers and the
+                # <...> style for all other libcamera headers.
+                if (file_name.startswith('libcamera/internal')):
+                    open_token = '"'
+                    close_token = '"'
+                elif (file_name.startswith('libcamera/')):
+                    open_token = '<'
+                    close_token = '>'
+
+                line = f'#include {open_token}{file_name}{close_token}'
+                includes.append((line, file_name))
                 continue
 
             # The current line is not an #include statement, output the sorted
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list