| Coding Style & Guidelines |
| ========================= |
| |
| The following sections contain |TFACMF| coding guidelines. They are continually |
| evolving and should not be considered "set in stone". Feel free to question them |
| and provide feedback. |
| |
| Rules |
| ----- |
| |
| #. CMake file names use `CamelCase`_ formating. |
| #. Indent with tabs and otherwise use spaces. Use 4 spaces for tab size. |
| #. Use LF as line end in CMake files. |
| #. Remove trailing whitespace. |
| #. When complicated functionality is needed prefer CMake scripting over |
| other languages. |
| #. Prefix local variables with `_`. |
| #. Use functions to prevent global name-space pollution. |
| #. Use `snake_case`_ for function and variable names. |
| #. Use the ``include_guard()`` CMake function when creating new modules, to |
| prevent multiple inclusion. |
| #. Use self contained modules, i.e. include direct dependencies of the module. |
| #. Use the Sphinx CMake domain for in-line documentation of CMake scripts. |
| For details please refer to the `CMake Documentation`_. |
| |
| .. todo:: Explain CMake return values and parent scope concept in more detail. |
| |
| -------------- |
| |
| .. _`CamelCase`: https://hu.wikipedia.org/wiki/CamelCase |
| .. _`snake_case`: https://en.wikipedia.org/wiki/Snake_case |
| .. _`CMake Documentation`: https://github.com/Kitware/CMake/blob/master/Help/dev/documentation.rst |
| |
| *Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.* |
| |
| SPDX-License-Identifier: BSD-3-Clause |