From 73a11cbf78342ecc875709e92abacee165530823 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 23 Oct 2019 16:23:47 +0300 Subject: Documentation: coding-style: Document order of includes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We follow the Google C++ Style Guide rule on include ordering with a few tweaks. Document our rule explicitly. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Niklas Söderlund --- Documentation/coding-style.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'Documentation/coding-style.rst') diff --git a/Documentation/coding-style.rst b/Documentation/coding-style.rst index ced31551..c5324823 100644 --- a/Documentation/coding-style.rst +++ b/Documentation/coding-style.rst @@ -61,6 +61,29 @@ document: Code Style for indentation, braces, spacing, etc * Header guards are formatted as '__LIBCAMERA_FILE_NAME_H__' +Order of Includes +~~~~~~~~~~~~~~~~~ + +Headers shall be included at the beginning of .c, .cpp and .h files, right +after the file description comment block and, for .h files, the header guard +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. + +The headers shall be grouped and ordered as follows. + + # The header declaring the API being implemented (if any) + # The C and C++ system and standard library headers + # Other libraries' headers, with one group per library + # Other project's 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. + C++ Specific Rules ------------------ -- cgit v1.2.1