summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-06-25 00:58:49 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-08-11 10:33:40 +0100
commit0e1ff86e78ae1813b29972ce4a682ad99dbb41e3 (patch)
tree65843bb5a3d776304029090a6bd8c6bb211317f7 /Documentation
parente552981c8f77981390dc4241525276648d616a37 (diff)
clang-format: Regroup sort orders
Utilise the clang-format header sort to provide a regex based pattern match for our header inclusion coding style. The rules are updated to match as closely as possible the existing practices and the documentation is updated accordingly. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/coding-style.rst17
1 files changed, 14 insertions, 3 deletions
diff --git a/Documentation/coding-style.rst b/Documentation/coding-style.rst
index 5db7f480..ef3a0d17 100644
--- a/Documentation/coding-style.rst
+++ b/Documentation/coding-style.rst
@@ -70,19 +70,30 @@ macro. For .cpp files, if the file implements an API declared in a header file,
that header file shall be included first in order to ensure it is
self-contained.
+While the following list is extensive, it documents the expected behaviour
+defined by the clang-format configuration and tooling should assist with
+ordering.
+
The headers shall be grouped and ordered as follows:
1. The header declaring the API being implemented (if any)
2. The C and C++ system and standard library headers
-3. Other libraries' headers, with one group per library
-4. Other project's headers
+3. Linux kernel headers
+4. The libcamera base private header if required
+5. The libcamera base library headers
+6. The libcamera public API headers
+7. The libcamera IPA interfaces
+8. The internal libcamera headers
+9. Other libraries' headers, with one group per library
+10. Local headers grouped by subdirectory
+11. Any local headers
Groups of headers shall be separated by a single blank line. Headers within
each group shall be sorted alphabetically.
System and library headers shall be included with angle brackets. Project
headers shall be included with angle brackets for the libcamera public API
-headers, and with double quotes for other libcamera headers.
+headers, and with double quotes for internal libcamera headers.
C++ Specific Rules