Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
255 commits
Select commit Hold shift + click to select a range
82c4901
set CXX_STANDARD 17
jakoch Jul 18, 2024
a61d12c
removing FCN_EXCEPTION
jakoch Jul 18, 2024
d7e6688
removing FCN_EXCEPTION
jakoch Jul 18, 2024
15d124a
solve array to pointer decay
jakoch Jul 18, 2024
b24ba96
merge pr-57 and formatting
felixdollack Aug 21, 2020
5352a23
update build-tools to run from top-level folder
jakoch Jul 18, 2024
4844505
tidy headers
jakoch Jul 18, 2024
ecb330e
fix color.hpp
jakoch Jul 18, 2024
1b28e98
modernize license and copyright headers
jakoch Jul 19, 2024
958eeaa
removed all extern "c" helper functions for extension detection by au…
jakoch Jul 19, 2024
49941d2
fix WIN32_LEAN_AND_MEAN redeclaration errors
jakoch Jul 19, 2024
a063464
remove all contributions folders, integrate into main folders
jakoch Jul 19, 2024
01d9cf3
simplify building of shared or static libraries, drop fine-grained bu…
jakoch Jul 19, 2024
a301bea
set CXX_STANDARD_REQUIRED ON
jakoch Jul 19, 2024
190dabc
removed source_group() support for Visual Studio IDE
jakoch Jul 19, 2024
69e257d
remove add_custom_target. i have no clue what this is for
jakoch Jul 19, 2024
cf9dfd1
remove PERMISSIONS from install targets
jakoch Jul 19, 2024
f2a003a
remove OGLFT dependency
jakoch Jul 19, 2024
ccd9b80
switch dependency management to VCPKG
jakoch Jul 19, 2024
917907c
add GHA CI workflow [skip appveyor]
jakoch Jul 20, 2024
53aecae
.
jakoch Jul 20, 2024
3b07447
remove oglft finder
jakoch Jul 20, 2024
1b27190
Merge branch 'one' of https://github.com/fifengine/fifechan into one
jakoch Jul 20, 2024
1b4716e
fix workflow file
jakoch Jul 20, 2024
e57564f
crafting workflow [skip appveyor]
jakoch Jul 20, 2024
cd5f41e
set vcpkg triplet based on shared_libs, fix slashes for windows
jakoch Jul 20, 2024
477b87c
fix yml
jakoch Jul 20, 2024
5de7863
fix space in vcpkg_toolchain concat
jakoch Jul 20, 2024
c9509a4
add source dir for cmake
jakoch Jul 20, 2024
3b5015e
more workflow building
jakoch Jul 20, 2024
cfd4612
building workflow
jakoch Jul 20, 2024
cecf5d7
workflow things
jakoch Jul 20, 2024
1509e5e
workflow
jakoch Jul 20, 2024
a25af9f
workflow things
jakoch Jul 20, 2024
a657866
add caches for vcpkg and build
jakoch Jul 20, 2024
100a3fd
fix ccache cache key
jakoch Jul 20, 2024
2b755ba
fetch latest version of sccache
jakoch Jul 20, 2024
02bc33f
download latest sscache
jakoch Jul 20, 2024
3225e61
ignore the .sha256 hash file
jakoch Jul 20, 2024
6949694
forgot the download step, rofl
jakoch Jul 20, 2024
aadb80d
wtf, change action
jakoch Jul 20, 2024
427a5a4
add install step
jakoch Jul 20, 2024
3be0bf7
add build_type to install step
jakoch Jul 20, 2024
b51e898
fix setting build_type
jakoch Jul 20, 2024
2c05e74
cmake is allgemein müll
jakoch Jul 20, 2024
a5a9b0f
build artifact name and upload
jakoch Jul 20, 2024
8438077
add asciiart into main header file
jakoch Jul 20, 2024
16ae1f5
add doxygen comment for symbol visibility to platform.hpp
jakoch Jul 21, 2024
19672fb
move includes/util/fcn_math.hpp to /includes/math.hpp
jakoch Jul 22, 2024
c11f54a
header fix for math.hpp move
jakoch Jul 22, 2024
3ac2d08
small refactoring
jakoch Jul 22, 2024
6ff293f
turn building FIFECHAN_EXAMPLES off
jakoch Jul 22, 2024
63b11a5
Why do C/C++ programmers make terrible secret agents? Because they ca…
jakoch Jul 23, 2024
8f6a881
add c++ quality workflow
jakoch Jul 23, 2024
6657e35
fix path to format.sh
jakoch Jul 23, 2024
31161ec
fixes for cpplint
jakoch Jul 23, 2024
a47a259
ignore cpplint rule runtime/indentation_namespace
jakoch Jul 23, 2024
f33870b
fix cpplint issues for tests folder
jakoch Jul 23, 2024
e62b0d1
cpplint include folder
jakoch Jul 23, 2024
4915f21
cpplint is peak google engineering
jakoch Jul 23, 2024
7d81f17
more exclude bullshit
jakoch Jul 23, 2024
067b87c
change color blending formula to the one found in SDL_gfx
jakoch Jul 23, 2024
2e67bdf
use LIB_INSTALL_DIR on all INSTALL paths to respect relative packaging
jakoch Jul 23, 2024
080b2bf
add build-tools/cpplint.sh, more fixes
jakoch Jul 23, 2024
77d1640
update changelog, update todo
jakoch Jul 23, 2024
555ddfa
fix c-style cast and type, remove exclude from cpplint cli invocation…
jakoch Jul 23, 2024
6e9d0af
move git-diff exit-code bubbling up into the format.sh file
jakoch Jul 23, 2024
4919394
lets see whats going on after clang-format on CI
jakoch Jul 23, 2024
7907b60
cleanup llvm.sh
jakoch Jul 23, 2024
c6782da
cleanup llvm.sh
jakoch Jul 23, 2024
f5f87c6
set chmod 755 on build-tools
jakoch Jul 23, 2024
a56caa0
lets do whatever git core.fileMode wants
jakoch Jul 23, 2024
2370bf7
remove Appveyor and remove standalone dependencies project and cmake …
jakoch Jul 23, 2024
c91a303
activate win-vc16-x64 builds on gha
jakoch Jul 23, 2024
02aa234
identify places where 'reinterpret_cast' is used
jakoch Jul 24, 2024
0e99b85
apply spellchecking, remove trivial comments, e.g. on constructor/des…
jakoch Jul 24, 2024
44b8438
switch from LIB_INSTALL_DIR+LIB_SUFFIX to CMAKE_INSTALL_LIBDIR
jakoch Jul 24, 2024
7a655ae
moved all third-party backends into a "backends" folder, adjust CMake…
jakoch Jul 24, 2024
7df0bee
fixes headers for "backends" folder change
jakoch Jul 24, 2024
addf162
remove usage of a global gui object, let error bubble up
jakoch Jul 24, 2024
ac56da2
removed backends: allegro, cairo, irrlicht, glut, hge, openlayer
jakoch Jul 24, 2024
3d2a17c
removed backends: allegro, cairo, irrlicht, glut, hge, openlayer
jakoch Jul 24, 2024
0684954
ident preprocessor directives
jakoch Jul 24, 2024
771b6c9
disable win-vc16-x64-static-release, because freetype doesn't build
jakoch Jul 24, 2024
eac0206
add CopyResources CMake script to help with asset copying
jakoch Jul 24, 2024
e2f6933
use modern filename scheme for package config files
jakoch Jul 24, 2024
c66cac2
use modern filename for package config files -2
jakoch Jul 24, 2024
d228bcd
add/handle conditional dependencies in package config
jakoch Jul 24, 2024
3988749
fix export target names to be found again
jakoch Jul 24, 2024
7d5ccc9
rename parameter recursiv to recursion
jakoch Jul 24, 2024
d8c800d
generate version.hpp from template, insert version data automatically
jakoch Jul 24, 2024
29161c4
avoid LF issues when switching between windows and linux
jakoch Jul 24, 2024
f85c21e
use CXX17 on tests binaries
jakoch Jul 24, 2024
c661ccb
configure cmake.buildDirectory
jakoch Jul 25, 2024
6f4b784
replace ligature which can not be rendered by windows terminal of course
jakoch Jul 25, 2024
f96cf91
fix file permissions
jakoch Jul 25, 2024
4124778
updated doxygen.conf to Doxygen v1.11.0
jakoch Jul 25, 2024
f38248e
fix doxygen warnings and tags
jakoch Jul 25, 2024
7d44bdb
fixed more doxygen issues
jakoch Jul 26, 2024
9e4d3ed
fix SDL2 includes
jakoch Jul 26, 2024
589714d
fix uninitialized cmake vars
jakoch Jul 26, 2024
996a349
add CMakePresets.json and composable presets
jakoch Jul 26, 2024
95ded59
activate GHA workflow
jakoch Feb 18, 2026
c8024e5
transfer QA stuff from fifengine
jakoch Feb 18, 2026
81bd14a
qa workflow: enable clang-format from now on
jakoch Feb 18, 2026
cc5e992
simplify SetupVcpg.cmake
jakoch Feb 23, 2026
5b27442
update scripts in build-tools, fix VC18 generator name
jakoch Feb 23, 2026
90a4d96
replace ilammy/msvc-dev-cmd with native dev prompt setup, because its…
jakoch Feb 23, 2026
a02239e
fix: update condition syntax for dev prompt
jakoch Feb 23, 2026
2afd7f4
WTF
jakoch Feb 23, 2026
1a09324
set env var VCPKG_FORCE_SYSTEM_BINARIES to let vcpkg use cmake 4.2 (a…
jakoch Feb 23, 2026
2d1fe53
update runners to windows-2025, windows-2025-vs2026. oof
jakoch Feb 23, 2026
c0d4430
fix: update git diff command to ignore file mode for CI checks
jakoch Feb 23, 2026
a519664
apply clang-format
jakoch Feb 23, 2026
38b5f48
switch to debian trixie on devcontainer
jakoch Feb 23, 2026
02059f2
apply clang-tidy fixes
jakoch Feb 23, 2026
c30eee5
switch to C++20 and apply first set of fixes
jakoch Mar 1, 2026
2023f1a
apply clang-format
jakoch Mar 1, 2026
3d16578
disable double builds, only build PR
jakoch Mar 1, 2026
3309165
apply C++20 fixes
jakoch Mar 3, 2026
18a36d9
remove invalid const qualifier
jakoch Mar 3, 2026
95ff4fa
remove invalid const qualifier
jakoch Mar 3, 2026
85debf2
apply cpplint fixes
jakoch Mar 4, 2026
039bb07
apply another set of cpplint fixes
jakoch Mar 4, 2026
cdc4199
remove travis yml
jakoch Mar 4, 2026
9aa0df2
simplify exception handling
jakoch Mar 4, 2026
351f115
upgrade Color class
jakoch Mar 4, 2026
3ea382d
fix syntax error
jakoch Mar 4, 2026
e26fb0a
apply cpplint fixes
jakoch Mar 4, 2026
ad2baad
fix syntax error
jakoch Mar 4, 2026
48f2f92
fix syntax error
jakoch Mar 4, 2026
16f281d
fix syntax error
jakoch Mar 4, 2026
1ea14c0
remove CI presets, add vcpkg baseline, updated sdl2 layer, updates in…
jakoch Mar 5, 2026
0525b3a
update baseline to latest tag
jakoch Mar 5, 2026
1b7de40
WTF. linker language cannot be determined... errors nobody else gets.…
jakoch Mar 5, 2026
87ba9d9
apply cpplint fixes
jakoch Mar 5, 2026
867955b
fix linker error for fifechan_sdl2 lib
jakoch Mar 5, 2026
c6b021d
apply cpplint fixes
jakoch Mar 5, 2026
868d04d
integrate examples
jakoch Mar 5, 2026
da2b44e
apply cpplint fixes
jakoch Mar 6, 2026
e245434
install examples into /share/examples
jakoch Mar 6, 2026
568070c
apply cpplint and clang-format fixes
jakoch Mar 6, 2026
a208d85
move do diagnostics folder
jakoch Mar 6, 2026
c1b35ae
integrate Catch2 for testing, enable testing in CI
jakoch Mar 6, 2026
8404bda
apply cpplint fixes
jakoch Mar 6, 2026
b6014c3
drop AmigaOS4 support. fix GLU issue in FPSdemo by including windows …
jakoch Mar 6, 2026
7fa4488
fix condition var to build tests
jakoch Mar 6, 2026
8884f11
fix for static builds
jakoch Mar 6, 2026
809b5cd
fix compiler on vc18 preset
jakoch Mar 6, 2026
17d3dfa
try to build statically
jakoch Mar 6, 2026
ce1cf88
add CI workflow build-linux.yml
jakoch Mar 6, 2026
971a76c
WTF. stash all existing vcpkg changes on both platforms
jakoch Mar 6, 2026
afd7204
apply clang-format
jakoch Mar 6, 2026
78035b6
Enable C on project (allow deps using FindThreads to detect pthreads)
jakoch Mar 6, 2026
e0481ab
drop usage of libc++ use libstdc++, because of dependencies
jakoch Mar 6, 2026
c89f165
include examples in build-tools to allow QA
jakoch Mar 6, 2026
03d090b
copy binary dependencies to test
jakoch Mar 6, 2026
3fd0a4d
rename test files
jakoch Mar 6, 2026
4fdcf38
apply clang-tidy rule: modernize-use-nullptr
jakoch Mar 6, 2026
9e1d79f
rename test files
jakoch Mar 6, 2026
b167539
apply clang-tidy rule: readability-uppercase-literal-suffix
jakoch Mar 6, 2026
5e7915c
use TARGET_RUNTIME_DLLS to copy freetype.dll and libpng16.dll to exam…
jakoch Mar 6, 2026
48422cc
apply clang-tidy fixes
jakoch Mar 6, 2026
a713ac3
copy TARGET_RUNTIME_DLLS only when BUILD_SHARED_LIBS is true
jakoch Mar 6, 2026
3e1d5ca
apply clang-tidy fixes
jakoch Mar 6, 2026
30338c8
remove unused font
jakoch Mar 6, 2026
b3b2dd6
add cleanup-workflow to CI
jakoch Mar 6, 2026
781fbe9
add "build-on-container" to build-linux workflow, build on bookworm w…
jakoch Mar 6, 2026
333df38
add build-docs workflow to CI and doxygen.sh helper script
jakoch Mar 6, 2026
dd56b7c
add missing API docs
jakoch Mar 6, 2026
716aa99
fix build-on-containers: vcpkg location is /opt/vcpkg
jakoch Mar 6, 2026
c12e91a
raise required cmake version to 3.25 with 4.2 max
jakoch Mar 6, 2026
5afd3de
copy transitive dlls for fps_demo
jakoch Mar 6, 2026
29ef225
copy transitive dlls for fps_demo, try 2
jakoch Mar 6, 2026
1224209
apply clang-tidy fixes
jakoch Mar 7, 2026
f5f844e
apply clang-tidy fixes
jakoch Mar 7, 2026
d073084
apply clang-format
jakoch Mar 7, 2026
8f022cc
remove DirectX3D backend
jakoch Mar 7, 2026
957edc7
apply clang-tidy fixes
jakoch Mar 7, 2026
98d297f
apply clang-tidy fixes
jakoch Mar 7, 2026
b092db2
fix imagebutton
jakoch Mar 7, 2026
2e67119
remvoe DirectX3D backend
jakoch Mar 7, 2026
064ac2e
remove DirectX3D backend
jakoch Mar 7, 2026
1c99e46
reworks sdlwidgets layout to demonstrate all widgets
jakoch Mar 7, 2026
313b2c2
apply clang-tidy fixes, fix rendering of widgets, add drawRoundStroke…
jakoch Mar 7, 2026
0275013
add API docs
jakoch Mar 8, 2026
f54fc9b
apply clang-tidy fixes
jakoch Mar 8, 2026
982540d
improved API docs for doxygen, fixed more clang-tidy issues
jakoch Mar 8, 2026
dfdd1da
add github community documents
jakoch Mar 8, 2026
c81fe26
add ImageProgressBar to umbrella header
jakoch Mar 8, 2026
6ab20ca
install the generated version header file into the includes folder, s…
jakoch Mar 8, 2026
d1ab674
ignore doxygen output folder
jakoch Mar 9, 2026
6fbfda9
update doxygen config to v1.16.1
jakoch Mar 9, 2026
968dd82
qa workflow: fail on error
jakoch Mar 9, 2026
5cfd586
apply clang-tidy fixes
jakoch Mar 9, 2026
7acd3a7
remove identical branch
jakoch Mar 9, 2026
b1ccf3b
CI QA workflow: set exitcode 1 for failed cppcheck, add examples and …
jakoch Mar 10, 2026
3cb2477
apply clang-tidy fixes
jakoch Mar 10, 2026
33ee529
apply cppcheck (postfixOperator)
jakoch Mar 10, 2026
146cda0
apply cppcheck (catchExceptionByValue = catch by ref)
jakoch Mar 10, 2026
a6028ac
apply cppcheck (missingOverride)
jakoch Mar 10, 2026
007b7fe
rename leftovers "BasicContainer" to "Container"
jakoch Mar 10, 2026
1bf694a
apply cppcheck (duplInheritedMember)
jakoch Mar 10, 2026
e1ad3cd
apply clang-tidy (special member functions, parentheses)
jakoch Mar 10, 2026
60c427c
apply clang-tidy (remove deconstructors / all special functions)
jakoch Mar 10, 2026
dacf1e2
fix some adjustSize() virtual function calls in constructors by provi…
jakoch Mar 10, 2026
5fce1ed
replace adjustSize() with adjustSizeImpl() in constructors
jakoch Mar 10, 2026
b602b57
apply clang-tidy (member inits, useInitializationList), rename Widget…
jakoch Mar 10, 2026
0891b17
apply cppcheck (useStlAlgorithm instead of raw Loops)
jakoch Mar 10, 2026
a11b7de
remove round() for MSVC
jakoch Mar 10, 2026
4524fdf
apply clang-tidy (modernize-use-default-member-init)
jakoch Mar 10, 2026
919d144
apply clang-tidy (rm redundant inline specifier) + (rule of 5 for input)
jakoch Mar 10, 2026
24d837a
use a namespace to avoid ODR violation
jakoch Mar 10, 2026
1e17d19
delete copy+move constructors for TextBox + TextField to prevent unin…
jakoch Mar 10, 2026
9ffe368
Reduce scope of actionListeners
jakoch Mar 10, 2026
5aa5f24
remvoe unread variables
jakoch Mar 10, 2026
cbcabc6
use const pointer
jakoch Mar 11, 2026
9819510
apply clang-tidy (modernize-use-ranges)
jakoch Mar 11, 2026
a120de3
apply cppcheck and clang-tidy fixes (various)
jakoch Mar 11, 2026
b021e33
update clang-tidy rules
jakoch Mar 11, 2026
2b67235
remove mOpaque from windows, because parent (container) provides it
jakoch Mar 11, 2026
a7d1eb0
add member inits
jakoch Mar 11, 2026
156f865
tweak MSVC compilation flags
jakoch Mar 11, 2026
c268aa4
Add USE_VCPKG option to allow Linux builds to disable vcpkg and use s…
jakoch Mar 12, 2026
d9acd43
update actions/upload-artifact to v7
jakoch Mar 12, 2026
55150a8
rename Widget::clear() to removeAllChildren(), fix exception handling…
jakoch Mar 12, 2026
a356ca0
refactor and rename backend files
jakoch Mar 13, 2026
e93bd73
refactor and rename backend files
jakoch Mar 13, 2026
f928365
refactor and rename backend files
jakoch Mar 13, 2026
6c5219a
set default values to often undefined vcpkg vars
jakoch Mar 13, 2026
5467b34
add debug presets for Clang21, Clang20, GCC14, sort configure presets
jakoch Mar 13, 2026
4a3ea12
install system lib glu for fps_demo during setup-vcpkg.sh, update rea…
jakoch Mar 13, 2026
748ba2d
rename leftover OpenGLImage to Image, and remove invalid includes
jakoch Mar 13, 2026
67dde45
rename leftover OpenGLImage to Image, and remove invalid includes
jakoch Mar 13, 2026
610d73c
init sdl first
jakoch Mar 14, 2026
528c39d
on windows: set WIN32_EXECUTABLE property to disable console windows
jakoch Mar 14, 2026
a969337
update image loader for pink transparency and handle color key conver…
jakoch Mar 14, 2026
f1c1a11
cleanup + formatting
jakoch Mar 14, 2026
ba07ac3
doxygen: improve API docs
jakoch Mar 14, 2026
9dcc7fd
create doxygen logs and git ignore them
jakoch Mar 14, 2026
a77a905
fix doxygen errors
jakoch Mar 14, 2026
9317bff
apply tidy fixes (cppcoreguidelines, bugprone-switch-missing-default-…
jakoch Mar 14, 2026
811603e
enums: add class in keyinput and mouseinput headers, update methods a…
jakoch Mar 14, 2026
0678788
apply tidy fixes (various)
jakoch Mar 14, 2026
cf209e8
apply cppcheck and tidy fixes
jakoch Mar 15, 2026
85e6dae
include utility header for move
jakoch Mar 15, 2026
6a4fa67
include utility header for move
jakoch Mar 15, 2026
f47e535
copy dlls only on WIN
jakoch Mar 15, 2026
68d9271
update Readme and Changelog for Release v0.2.0
jakoch Mar 15, 2026
91c3775
sort and format
jakoch Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
124 changes: 124 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# A complete list of style options can be found at:
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
#
# Google C++ Style Guide
# https://google.github.io/styleguide/cppguide.html

# You can disable formatting of a piece of code like so:
#
# int formatted_code;
# // clang-format off
# void unformatted_code ;
# // clang-format on
# void formatted_code_again;
#

Language: Cpp

# Basic indentation and spacing rules:
IndentWidth: 4
ContinuationIndentWidth: 4
UseCRLF: false
Standard: c++20
UseTab: Never
MaxEmptyLinesToKeep: 1

AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: true
AlignEscapedNewlinesLeft: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortFunctionsOnASingleLine: Empty
AllowShortBlocksOnASingleLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortLambdasOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes

# Configure each individual brace in BraceWrapping
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: false
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
BreakBeforeBraces: Custom

BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
ColumnLimit: 120
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
ExperimentalAutoDetectBinPacking: true
FixNamespaceComments: true
IndentCaseLabels: false
IndentGotoLabels: false
IndentPPDirectives: BeforeHash
IndentFunctionDeclarationAfterType: false
NamespaceIndentation: All
ObjCSpaceBeforeProtocolList: false
PenaltyBreakBeforeFirstCallParameter: 10
PenaltyBreakComment: 60
PenaltyBreakFirstLessLess: 20
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
SpaceAfterControlStatementKeyword: true
SpaceBeforeParens: ControlStatements
SpaceBeforeAssignmentOperators: true
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpacesInAngles: false
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

# int* value instead of int *value
DerivePointerAlignment: false
PointerAlignment: Left
PointerBindsToType: true
SpaceAroundPointerQualifiers: After

# Prefer "east const", placing `const` after the type: int const instead of const int
QualifierAlignment: Right

SortIncludes: true
IncludeBlocks: Regroup
IncludeCategories:
# Headers in <> from specific external libraries.
- Regex: '^<(fmt|gtest|gmock|SDL|spdlog|allegro)(\/)?([A-Za-z0-9.\/-_])+>'
Priority: 3
- Regex: '^<fifechan/widgets/.*\.hpp>$'
Priority: 4
- Regex: '^<fifechan/.*\.hpp>$'
Priority: 5
- Regex: '^<[a-z0-9_]*\.hpp>$'
Priority: 6
# C++ standard library. These includes are all lowercase.
- Regex: '^<[a-z0-9_]*>$'
Priority: 7
46 changes: 46 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# clang-tidy configuration file.
#
# https://clang.llvm.org/extra/clang-tidy/
# https://clang.llvm.org/extra/clang-tidy/checks/list.html
#
Checks: >
-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
-bugprone-narrowing-conversions,
clang-diagnostic-*,
-clang-analyzer-*,
cert-err34-c,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-narrowing-conversions,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-pro-type-union-access,
google-explicit-constructor,
misc*,
misc-uniqueptr-reset-release,
-misc-no-recursion,
-misc-include-cleaner,
-misc-non-private-member-variables-in-classes,
modernize*,
-modernize-use-auto,
-modernize-use-trailing-return-type,
-modernize-use-nodiscard,
performance-*,
portability-*,
readability-*,
-readability-identifier-length,
-readability-magic-numbers,
-readability-function-cognitive-complexity,
-readability-convert-member-functions-to-static

WarningsAsErrors: >
clang-analyzer-security.*
# Analyze only headers under include/ and not system headers.
HeaderFilterRegex: '^include/.*'
SystemHeaders: false
# Use our .clang-format file when applying fixes.
FormatStyle: file
25 changes: 25 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "Fife DevBox",
"image": "ghcr.io/jakoch/cpp-devbox:trixie-latest",
"customizations": {
"vscode": {
"extensions": [
// EditorConfig
"EditorConfig.EditorConfig",
// Git + Github
"GitHub.vscode-pull-request-github",
// C++
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cpptools-themes",
// CMake
"ms-vscode.cmake-tools",
"twxs.cmake",
// Testing
"matepek.vscode-catch2-test-adapter",
"ms-vscode.test-adapter-converter",
"hbenl.vscode-test-explorer"
]
}
}
}
40 changes: 40 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This file configures editors using the EditorConfig scheme.
# https://editorconfig.org/

# Guideline support for "Visual Studio 2022" IDE using extension: "PaulHarrington.EditorGuidelinesPreview"
# https://marketplace.visualstudio.com/items?itemName=PaulHarrington.EditorGuidelinesPreview

# Editorconfig support for "VSCode" using extension: "editorconfig.editorconfig"
# https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig

root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
insert_final_newline = true

# "visual studio" specific
spelling_languages = en-us
guidelines = 80 dashed, 130

[CMakeLists.txt, *.{cmake}]
indent_size = 2

[*.{c,cc,cpp,h,hpp,hxx,inl}]
indent_size = 4
trim_trailing_whitespace = true
# "visual studio" specific
vc_generate_documentation_comments = doxygen_slash_star

[*.{json,yaml,yml}]
indent_size = 2
insert_final_newline = false

[*.{md,markdown}]
indent_size = 4
trim_trailing_whitespace = false

[*.{clang-format}]
indent_size = 2
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* eol=lf
*.png binary
*.xcf binary
*.bmp binary
*.exe binary
*.ttf binary
3 changes: 3 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Contributor Covenant Code of Conduct

Please be nice and contribute positively to the project.
15 changes: 15 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributing to this project

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

# Reporting Issues

When reporting issues, please try to be as descriptive as possible, and include as much relevant information as you can. A step by step guide on how to reproduce the issue will greatly increase the chances of your issue being resolved in a timely manner.

# Contributing policy

Fork the project, create a feature branch, and send us a pull request.

To ensure a consistent code base, you should make sure the code follows the used standards.

If you would like to help, take a look at the list of open issues.
12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: LinuxDonald # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
5 changes: 5 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<!-- Please remember to select the appropriate branch:

For bug fixes pick the oldest branch where the fix applies.

For new features and everything else, use the main branch. Thank you. <3 -->
18 changes: 18 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# dependabot.yml
#
# Dependabot updates dependencies automatically to their latest versions.
#
# Docs: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2

updates:
# Enable automatic version updates for Github Actions
- package-ecosystem: "github-actions"
# Look for `.github/workflows` in the `root` directory
directory: "/"
schedule:
interval: "weekly"
ignore:
# ignore all updates for "https://github.com/actions/github-script"
- dependency-name: "github-script"
Loading