summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2021-03-24 22:46:48 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2021-03-24 22:46:48 (GMT)
commit2e3b24078e63ae944fc1d1e7ef10a70dfd2ebac6 (patch)
tree70714ddd8b7b8fa3bd225577f2acde405fb12333
parent93080fa6193a49cc44c5e417322047abfa3b55cf (diff)
downloadhdf5-2e3b24078e63ae944fc1d1e7ef10a70dfd2ebac6.zip
hdf5-2e3b24078e63ae944fc1d1e7ef10a70dfd2ebac6.tar.gz
hdf5-2e3b24078e63ae944fc1d1e7ef10a70dfd2ebac6.tar.bz2
Brings the clang-format files from develop
NOTE: Not wired into github actions at this time.
-rw-r--r--.clang-format96
-rw-r--r--MANIFEST3
-rwxr-xr-xbin/format_source26
-rwxr-xr-xbin/format_source_patch34
4 files changed, 159 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..62dc6b5
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,96 @@
+---
+Language: Cpp
+BasedOnStyle: LLVM
+AlignConsecutiveAssignments: true
+#llvm11: AlignConsecutiveBitFields: false
+AlignConsecutiveDeclarations: true
+AlignConsecutiveMacros: true
+#llvm10-11: AlignOperands: true - Align
+#llvm11: AllowShortEnumsOnASingleLine: true
+AllowShortFunctionsOnASingleLine: None
+AlwaysBreakAfterReturnType: AllDefinitions
+# Can enable the following section when llvm 12.x is out
+#AttributeMacros:
+# - H5_ATTR_FORMAT
+# - H5_ATTR_UNUSED
+# - H5_ATTR_DEPRECATED_USED
+# - H5_ATTR_NDEBUG_UNUSED
+# - H5_ATTR_DEBUG_API_USED
+# - H5_ATTR_PARALLEL_UNUSED
+# - H5_ATTR_PARALLEL_USED
+# - H5_ATTR_NORETURN
+# - H5_ATTR_CONST
+# - H5_ATTR_PURE
+# - H5_ATTR_FALLTHROUGH
+BraceWrapping:
+ AfterFunction: true
+ #llvm10-11: AfterControlStatement: false - Never
+ BeforeCatch: true
+ BeforeElse: true
+ #llvm11: BeforeLambdaBody: false
+ #llvm11: BeforeWhile: false
+BreakBeforeBraces: Stroustrup
+BreakAfterJavaFieldAnnotations: true
+BreakStringLiterals: true
+ColumnLimit: 110 # Update $max_trace_macro_line_len in bin/trace also
+ForEachMacros: ['ALL_MEMBERS', 'UNIQUE_MEMBERS']
+IncludeCategories:
+ - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
+ Priority: 3
+ SortPriority: 0
+ - Regex: '^(<|"(gtest|gmock|isl|json)/)'
+ Priority: 4
+ SortPriority: 0
+ - Regex: '.*'
+ Priority: 0
+ SortPriority: 0
+ - Regex: '^H5*.*'
+ Priority: 1
+ SortPriority: 0
+ - Regex: 'private.*'
+ Priority: 2
+ SortPriority: 0
+IncludeIsMainRegex: '(public)?$'
+IndentCaseLabels: true
+#llvm11: IndentCaseBlocks: false
+IndentGotoLabels: false
+#llvm11: IndentExternBlock: AfterExternBlock
+IndentWidth: 4
+#llvm11: InsertTrailingCommas: None
+MacroBlockBegin: "^BEGIN_FUNC"
+MacroBlockEnd: "^END_FUNC"
+ObjCBlockIndentWidth: 4
+#llvm11: ObjCBreakBeforeNestedBlockParam: true
+ReflowComments: true
+SortIncludes: false
+StatementMacros:
+ - FUNC_ENTER_API
+ - FUNC_LEAVE_API
+ - FUNC_ENTER_NOAPI_NOINIT_NOERR
+ - FUNC_LEAVE_NOAPI
+ - H5_BEGIN_TAG
+ - HGOTO_DONE_TAG
+ - H5_END_TAG
+ - HSYS_DONE_ERROR
+ - HSYS_GOTO_ERROR
+ - HDONE_ERROR
+ - HERROR
+ - H5_LEAVE
+ - H5E_PRINTF
+ - H5E_THROW
+ - HGOTO_DONE
+ - HGOTO_ERROR
+ - HMPI_ERROR
+ - HMPI_DONE_ERROR
+ - HMPI_GOTO_ERROR
+ - H5_GCC_DIAG_OFF
+ - H5_GCC_DIAG_ON
+ - CATCH
+#llvm10: TypenameMacros:
+#llvm10: - STACK_OF
+#llvm10: - LIST
+#llvm11: WhitespaceSensitiveMacros:
+#llvm11: - STRINGIZE
+#llvm11: - PP_STRINGIZE
+...
+
diff --git a/MANIFEST b/MANIFEST
index 9ff9698..445c46b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -33,6 +33,7 @@
./autogen.sh
./configure.ac
+./.clang-format
./.github/workflows/main.yml _DO_NOT_DISTRIBUTE_
./m4/aclocal_cxx.m4
@@ -71,6 +72,8 @@
./bin/deploy
./bin/distdep
./bin/errors _DO_NOT_DISTRIBUTE_
+./bin/format_source
+./bin/format_source_patch
./bin/genparser
./bin/gcov_script _DO_NOT_DISTRIBUTE_
./bin/h5cc.in
diff --git a/bin/format_source b/bin/format_source
new file mode 100755
index 0000000..dce34e5
--- /dev/null
+++ b/bin/format_source
@@ -0,0 +1,26 @@
+#!/bin/bash
+#
+# Recursively format all C & C++ sources and header files, except those in the
+# 'config' directory and generated files, such as H5LTanalyze.c, etc.
+#
+# Note that any files or directories that are excluded here should also be
+# added to the 'exclude' list in .github/workflows/clang-format-check.yml
+#
+# (Remember to update both bin/format_source and bin/format_source_patch)
+
+find . \( -type d -path ./config -prune -and -not -path ./config \) \
+ -or \( \( \! \( \
+ -name H5LTanalyze.c \
+ -or -name H5LTparse.c \
+ -or -name H5LTparse.h \
+ -or -name H5Epubgen.h \
+ -or -name H5Einit.h \
+ -or -name H5Eterm.h \
+ -or -name H5Edefin.h \
+ -or -name H5version.h \
+ -or -name H5overflow.h \
+ \) \) \
+ -and \( -iname *.h -or -iname *.c -or -iname *.cpp -or -iname *.hpp \) \) \
+ | xargs clang-format -style=file -i -fallback-style=none
+
+exit 0
diff --git a/bin/format_source_patch b/bin/format_source_patch
new file mode 100755
index 0000000..439baf2
--- /dev/null
+++ b/bin/format_source_patch
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Recursively format all C & C++ sources and header files, except those in the
+# 'config' directory and generated files, such as H5LTanalyze.c, etc.
+#
+# Note that any files or directories that are excluded here should also be
+# added to the 'exclude' list in .github/workflows/clang-format-check.yml
+#
+# (Remember to update both bin/format_source and bin/format_source_patch)
+
+find . \( -type d -path ./config -prune -and -not -path ./config \) \
+ -or \( \( \! \( \
+ -name H5LTanalyze.c \
+ -or -name H5LTparse.c \
+ -or -name H5LTparse.h \
+ -or -name H5Epubgen.h \
+ -or -name H5Einit.h \
+ -or -name H5Eterm.h \
+ -or -name H5Edefin.h \
+ -or -name H5version.h \
+ -or -name H5overflow.h \
+ \) \) \
+ -and \( -iname *.h -or -iname *.c -or -iname *.cpp -or -iname *.hpp \) \) \
+ | xargs clang-format -style=file -i -fallback-style=none
+
+git diff > clang_format.patch
+
+# Delete if 0 size
+if [ ! -s clang_format.patch ]
+then
+ rm clang_format.patch
+fi
+
+exit 0