From b29e08a5566307f0ecc59db058e3b65c75f71e35 Mon Sep 17 00:00:00 2001 From: Eanna O Cathain Date: Wed, 4 May 2022 13:34:31 +0100 Subject: MLECO-3160 Adding .clang-format Change-Id: If5cf20e189273a887917aefcc745c4992be93e1d Reviewed-on: https://eu-gerrit-2.euhpc.arm.com/c/ml/ecosystem/ml-embedded-evaluation-kit/+/543186 Tested-by: mlecosys Reviewed-by: Nina Drozd Reviewed-by: Kshitij Sisodia --- .clang-format | 56 ++++++++++++++++++++++++++++++++++++++ docs/sections/coding_guidelines.md | 18 ++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..b22d4c2 --- /dev/null +++ b/.clang-format @@ -0,0 +1,56 @@ +# +# Copyright (c) 2022 Arm Limited. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +--- +Language: Cpp +BasedOnStyle: LLVM +IndentWidth: 4 +ColumnLimit: 100 +AccessModifierOffset: -4 +PointerAlignment: Left +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: true +AlignConsecutiveMacros: true +AlignEscapedNewlines: Left +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortFunctionsOnASingleLine: Empty +AllowShortBlocksOnASingleLine: true +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BreakInheritanceList: AfterColon +BreakConstructorInitializers: AfterColon +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: true +--- + diff --git a/docs/sections/coding_guidelines.md b/docs/sections/coding_guidelines.md index ae479f7..57c45e0 100644 --- a/docs/sections/coding_guidelines.md +++ b/docs/sections/coding_guidelines.md @@ -25,6 +25,24 @@ Layer (HAL). Both of these languages follow different naming conventions within However, because we also issue function calls to third-party APIs, and they are not guaranteed to follow these conventions, the intended outcome could be different for every case. +## Pre-commit formatting +To help with the adherence of the coding guidelines, we have provided a clang-format file. When commiting, please run +the following command, post-staging but pre-commit. + + + ```Git + git-clang-format + ``` + +This will modify the staged changes, to adhere to the guidelines as described in the +.clang-format file in the root of the repo. Please note that the clang-format tool must be installed to run this +step and can be installed using the following command on Ubuntu: + + ``` + sudo apt install clang-format + ``` + + ## Language version For this project, code written in C++ uses a subset of the `C++14` feature set and software may be written using the -- cgit v1.2.1