Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ce6380b
Modernized CMake build scripts
mikucionisaau Jun 25, 2025
f313ce1
Fixed CMake scripts for Ubuntu-24.04 (cmake-3.28)
mikucionisaau Jun 25, 2025
caa772c
Simplified the cmake scripts
mikucionisaau Jun 25, 2025
418b206
Added presets and README for quick build, test, install
mikucionisaau Jun 25, 2025
ccf17ea
Minor fixes to README
mikucionisaau Jun 25, 2025
4ab96f2
Added back the compiler warnings and fixed them and some more readabi…
mikucionisaau Jun 26, 2025
346a66a
Refactoed key parsing to fallback to stream parsing in case from_char…
mikucionisaau Jun 27, 2025
e10eb0e
Removed redundant static_assert (used for testing has_from_chars)
mikucionisaau Jun 27, 2025
50cc95d
Simplified dependency tracking in CMake (failed with cmake-4)
mikucionisaau Jun 27, 2025
30cc892
Moved from_chars check
mikucionisaau Jun 27, 2025
ce155b7
isolated checking for from_chars (AppleClang is such a headache)
mikucionisaau Jun 27, 2025
bb80d4f
Isolated parse_key into a separate header to debug AppleClang issues
mikucionisaau Jun 30, 2025
d2ac671
Fixed parse_key
mikucionisaau Jun 30, 2025
2b0488c
Fixed parse?keys for sure now
mikucionisaau Jun 30, 2025
fc366a8
Simplified parsing key
mikucionisaau Jun 30, 2025
279655a
Removed leak sanitizer as AppleClang does not support it and AddressS…
mikucionisaau Jun 30, 2025
2a3c95f
Added GH CI build script
mikucionisaau Jun 30, 2025
3ee3c29
Split GH CI scripts into multiple files
mikucionisaau Jun 30, 2025
3ada870
Fixed compiler settings in the cmake presets
mikucionisaau Jun 30, 2025
eaea662
Decreased CMake preset json version to 8 so that cmake-3.28 (Ubuntu) …
mikucionisaau Jul 1, 2025
fa8ec81
Added cmake script for sanitizers and set presets to use it instead
mikucionisaau Jul 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 177 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: true
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: AfterColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
#IncludeBlocks: Regroup
IncludeBlocks: Preserve
IndentCaseLabels: false
IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
RawStringFormats:
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- 'c++'
- 'C++'
CanonicalDelimiter: ''
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
CanonicalDelimiter: ''
ReflowComments: true
#SortIncludes: true
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
UseTab: Never
---
Language: Java
BasedOnStyle: Google
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: All
BinPackArguments: true
BreakAfterJavaFieldAnnotations: true
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
ColumnLimit: 120
IndentWidth: 4
ReflowComments: true
TabWidth: 4
UseTab: Never
...
56 changes: 56 additions & 0 deletions .github/workflows/build-macos-13.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: Build for macOS-13
on:
push:
branches: [master]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-13.yml
pull_request:
branches: [master]
types: [synchronize, opened, reopened, ready_for_review]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-13.yml
workflow_dispatch:

jobs:
macOS-13:
runs-on: macos-13
env:
CMAKE_GENERATOR: Ninja
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '14.3.1'
- name: Setup Runner Environment
run: |
uname -a
xcrun --show-sdk-version
CORES=$(sysctl -n hw.ncpu)
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_LOAD=$CORES" >> $GITHUB_ENV
- name: Install Build Tools
run: |
brew update
brew install cmake ninja boost
- uses: actions/checkout@v4
- name: Configure Multi-Config
run: cmake --preset multi-san
- name: Build Debug
run: cmake --build --preset debug-san
- name: Test Debug
run: ctest --preset debug-san
- name: Build Release
run: cmake --build --preset release-san
- name: Test Release
run: ctest --preset release-san
56 changes: 56 additions & 0 deletions .github/workflows/build-macos-14.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: Build for macOS-14
on:
push:
branches: [master]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-14.yml
pull_request:
branches: [master]
types: [synchronize, opened, reopened, ready_for_review]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-14.yml
workflow_dispatch:

jobs:
macOS-14:
runs-on: macos-14
env:
CMAKE_GENERATOR: Ninja
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- name: Setup Runner Environment
run: |
uname -a
xcrun --show-sdk-version
CORES=$(sysctl -n hw.ncpu)
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_LOAD=$CORES" >> $GITHUB_ENV
- name: Install Build Tools
run: |
brew update
brew install cmake ninja boost
- uses: actions/checkout@v4
- name: Configure Multi-Config
run: cmake --preset multi-san
- name: Build Debug
run: cmake --build --preset debug-san
- name: Test Debug
run: ctest --preset debug-san
- name: Build Release
run: cmake --build --preset release-san
- name: Test Release
run: ctest --preset release-san
56 changes: 56 additions & 0 deletions .github/workflows/build-macos-15.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: Build for macOS-15
on:
push:
branches: [master]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-15.yml
pull_request:
branches: [master]
types: [synchronize, opened, reopened, ready_for_review]
paths:
- src/**
- test/**
- cmake/**
- CMakeLists.txt
- CMakePresets.json
- .github/workflows/build-macos-15.yml
workflow_dispatch:

jobs:
macOS-15:
runs-on: macos-15
env:
CMAKE_GENERATOR: Ninja
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '16.4.0'
- name: Setup Runner Environment
run: |
uname -a
xcrun --show-sdk-version
CORES=$(sysctl -n hw.ncpu)
echo "CMAKE_BUILD_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_PARALLEL_LEVEL=$CORES" >> $GITHUB_ENV
echo "CTEST_TEST_LOAD=$CORES" >> $GITHUB_ENV
- name: Install Build Tools
run: |
brew update
brew install cmake ninja boost
- uses: actions/checkout@v4
- name: Configure Multi-Config
run: cmake --preset multi-san
- name: Build Debug
run: cmake --build --preset debug-san
- name: Test Debug
run: ctest --preset debug-san
- name: Build Release
run: cmake --build --preset release-san
- name: Test Release
run: ctest --preset release-san
Loading
Loading