Skip to content

Commit

Permalink
Initial submit.
Browse files Browse the repository at this point in the history
  • Loading branch information
helly25 committed Jun 6, 2023
0 parents commit 6d7695c
Show file tree
Hide file tree
Showing 58 changed files with 6,919 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# To debug bazel options, uncomment next line.
# build --announce_rc

# Define the Apple OS
build --apple_platform_type=macos

# Allow platform specific control and add the missing 'CoreFoundation' lib.
build --enable_platform_specific_config
build:macos --features=-supports_dynamic_linker --linkopt=-framework --linkopt=CoreFoundation --host_linkopt=-framework --host_linkopt=CoreFoundation --linkopt=-Wl,-undefined,error

build --cxxopt=-std=c++20 --host_cxxopt=-std=c++20 --cxxopt=-Werror
test --test_output=errors
46 changes: 46 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
BasedOnStyle: Google

# Function argument formatting: Avoid reformatting:
# If parameters do not fit on the same line, then use one line per parameter
# with the same indent (not aligned with the parantesis).

ColumnLimit: 120

AlignAfterOpenBracket: AlwaysBreak
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakTemplateDeclarations: Yes
BinPackParameters: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeConceptDeclarations: Always
BreakBeforeTernaryOperators: true
BreakInheritanceList: BeforeComma
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: true
IndentRequiresClause: false
InsertBraces: true
InsertNewlineAtEOF: true
# InsertTrailingCommas: true <- Would change structs to never bin pack
IntegerLiteralSeparator:
Binary: 0
Decimal: 3
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
PackConstructorInitializers: NextLine
PointerAlignment: Left
QualifierAlignment: Left
ReferenceAlignment: Left
RemoveSemicolon: true
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Always
SortUsingDeclarations: Lexicographic
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: After
Standard: c++20
132 changes: 132 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
Checks: >
*,
abseil-*,
-altera-*,
bugprone-*,
-bugprone-exception-escape,
-cert-err58-cpp,
clang*,
clang-analyzer-*,
clang-diagnostic-*,
-clang-diagnostic-unused-command-line-argument,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-fuchsia*,
google-*,
-hicpp-no-assembler,
-llvm-else-after-return,
llvm-header-guard,
-llvm-include-order,
-llvmlibc-*,
misc-*,
modernize-*,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
performance-*,
portability-*,
readability-*,
-readability-else-after-return,
WarningsAsErrors: true
#HeaderFilterRegex: 'mbo/.*'
AnalyzeTemporaryDtors: false
FormatStyle: '.clang-format'
CheckOptions:
- key: bugprone-signed-char-misuse.CharTypdefsToIgnore
value: 'int8_t'
- key: google-readability-braces-around-statements.ShortStatementLines
value: '1'
- key: google-readability-function-size.StatementThreshold
value: '800'
- key: google-readability-namespace-comments.ShortNamespaceLines
value: '15'
- key: google-readability-namespace-comments.SpacesBeforeComments
value: '2'
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: '1'
- key: modernize-loop-convert.MaxCopySize
value: '16'
- key: modernize-loop-convert.MinConfidence
value: reasonable
- key: modernize-loop-convert.NamingStyle
value: CamelCase
- key: modernize-pass-by-value.IncludeStyle
value: llvm
- key: modernize-replace-auto-ptr.IncludeStyle
value: llvm
- key: modernize-use-default-member-init.UseAssignment
value: '1'
- key: modernize-use-emplace.IgnoreImplicitConstructors
value: '1'
- key: modernize-use-nullptr.NullMacros
value: 'NULL'
- key: performance-unnecessary-value-param.AllowedTypes
value: 'absl::Status;absl::StatusOr;std::string_view'
- key: readability-braces-around-statements.ShortStatementLines
value: '1'
- key: readability-identifier-length.IgnoredLoopCounterNames
value: 'i|it|n'
- key: readability-identifier-length.IgnoredParameterNames
value: 'os|v'
- key: readability-identifier-length.IgnoredVariableNames
value: 'os|v|it'
- key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: '1'
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.ClassMemberCase
value: lower_case
- key: readability-identifier-naming.ConstexprVariableCase
value: CamelCase
- key: readability-identifier-naming.ConstexprVariablePrefix
value: k
- key: readability-identifier-naming.EnumCase
value: CamelCase
- key: readability-identifier-naming.EnumConstantCase
value: CamelCase
- key: readability-identifier-naming.EnumConstantPrefix
value: k
- key: readability-identifier-naming.FunctionCase
value: CamelCase
- key: readability-identifier-naming.GlobalConstantCase
value: CamelCase
- key: readability-identifier-naming.GlobalConstantPrefix
value: k
- key: readability-identifier-naming.StaticConstantCase
value: CamelCase
- key: readability-identifier-naming.StaticConstantPrefix
value: k
- key: readability-identifier-naming.StaticVariableCase
value: lower_case
- key: readability-identifier-naming.MacroDefinitionCase
value: UPPER_CASE
- key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
value: '^[A-Z]+(_[A-Z]+)*_$'
- key: readability-identifier-naming.MemberCase
value: lower_case
- key: readability-identifier-naming.PrivateMemberSuffix
value: _
- key: readability-identifier-naming.PublicMemberSuffix
value: ''
- key: readability-identifier-naming.NamespaceCase
value: lower_case
- key: readability-identifier-naming.ParameterCase
value: lower_case
- key: readability-identifier-naming.TypeAliasCase
value: CamelCase
- key: readability-identifier-naming.TypedefCase
value: CamelCase
- key: readability-identifier-naming.VariableCase
value: lower_case
- key: readability-identifier-naming.IgnoreMainLikeFunctions
value: 1
- key: readability-identifier-naming.TypeAliasIgnoredRegexp
value: 'type'
- key: readability-identifier-naming.ClassIgnoredRegexp
value: 'type'
- key: readability-identifier-naming.ConstexprVariableIgnoredRegexp
value: 'value|index|.*[a-z]V'
- key: llvm-header-guard.HeaderFileExtensions
value: 'h,hh,hpp,hxx'
...
6 changes: 6 additions & 0 deletions .clangd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
CompileFlags:
#Compiler: /Library/Developer/CommandLineTools/usr/bin/clang
Compiler: /usr/local/opt/llvm/clang

Diagnostics:
UnusedIncludes: Strict
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/__pycache__

# Ignore the `external` link (that is added by `bazel-compile-commands-extractor`). The link differs between macOS/Linux and Windows, so it shouldn't be checked in. The pattern must not end with a trailing `/` because it's a symlink on macOS/Linux.
/external
# Ignore links to Bazel's output. The pattern needs the `*` because people can change the name of the directory into which your repository is cloned (changing the `bazel-<workspace_name>` symlink), and must not end with a trailing `/` because it's a symlink on macOS/Linux.
/bazel-*
# Ignore generated output. Although valuable (after all, the primary purpose of `bazel-compile-commands-extractor` is to produce `compile_commands.json`!), it should not be checked in.
/compile_commands.json
# Ignore the directory in which `clangd` stores its local index.
/.cache/
1 change: 1 addition & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package(default_visibility = ["//visibility:private"])
Loading

0 comments on commit 6d7695c

Please sign in to comment.