Commit Graph

39 Commits

Author SHA1 Message Date
Oliver Stöneberg 3bafe164a3
enabled some clang-tidy warnings for non-GUI code (#5679)
There are some clang-tidy warnings which cannot properly handle the
extensions used in the Qt code so the produce lots of false positives
and were previously enabled. With clang-tidy now offering the
possibility to inherit the parent configuration we can enable these
across the project and simply disable them for the GUI code.

No additional warnings were found as they were already fixed in earlier
commits without enabling the checks in question.
2023-11-20 10:06:46 +01:00
Oliver Stöneberg e7f8985173
disabled some expensive and/or unnecessary clang-tidy checks (#5660)
Running clang-tidy with `--enable-check-profile` provides an overview of
the run-time of each check. This revealed some checks which take a
considerable amount of time which could be disabled.

Here's the times for the checks in question. The times are very similar
across most files:
```
   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
...
   0.4531 (  4.7%)   0.3906 (  6.1%)   0.8438 (  5.2%)   0.8127 (  5.1%)  misc-unused-using-decls
...
   0.3281 (  3.4%)   0.2344 (  3.7%)   0.5625 (  3.5%)   0.4509 (  2.8%)  modernize-macro-to-enum
...
   0.2188 (  2.2%)   0.2031 (  3.2%)   0.4219 (  2.6%)   0.3621 (  2.3%)  modernize-use-nullptr
```
2023-11-15 11:24:25 +01:00
Oliver Stöneberg fdb3de708e
fixed #12042 - deprecated building with Qt5 / build with Qt6 in CI / updated latest Qt in CI to 6.5.3 (#4957)
Qt 5.15 will be EOL on May 26 so we should start switching away from it.
We already have issues with many of the previous versions and qmake on
legacy distros so we should cut that off.

I will add a Qt6 release build for Windows in another PR so it can be
tested. We should switch to it as the delivered build after the next
release and stop using Qt5 altogether in the CI in the release
afterwards (that would get rid of several build steps). We could leave
it so you could still try to build it but no longer support it so it is
up to the user to get it to work before removing it completely later on.
2023-10-26 14:55:59 +02:00
Oliver Stöneberg e7dd9cd793
enabled `readability-use-anyofallof` clang-tidy warning / added more checks to evaluate (#5339) 2023-08-31 09:04:51 +02:00
Oliver Stöneberg 5dbcea3f1d
enabled and mitigated `readability-container-size-empty` clang-tidy warnings (#5340) 2023-08-17 17:01:08 +02:00
Oliver Stöneberg 84a9b3a5f2
enabled and mitigated `modernize-use-equals-default` clang-tidy warnings / removed unnecessary default destructors (#5335) 2023-08-16 17:13:36 +02:00
Oliver Stöneberg 4e8c240129
updated CI to Clang 17 (#4797) 2023-08-09 12:45:15 +02:00
chrchr-github eee1221738
Use in-class initializers, default constructors, class -> struct (#4842) 2023-08-08 11:05:02 +02:00
chrchr-github bb962e2bc3
Enable and mitigate readability-else-after-return (#5175) 2023-06-20 18:43:21 +02:00
Oliver Stöneberg f5e51eace7
do not use string-to-integer conversions without error handling (#4906) 2023-04-08 22:29:09 +02:00
chrchr-github 3ccd0505cd
Enable and mitigate readability-simplify-boolean-expr (#4897) 2023-03-17 13:51:55 +01:00
Oliver Stöneberg 63f439dc1e
enabled and fixed `performance-noexcept-move-constructor` clang-tidy warnings (#4864) 2023-03-07 12:24:01 +01:00
Oliver Stöneberg 367847cf57
updated CI to Clang 16 (#4641) 2023-02-15 19:46:13 +01:00
Oliver Stöneberg 8ef14dad98
fixed and enabled `performance-faster-string-find` clang-tidy warning (#4769) 2023-02-08 21:01:51 +01:00
Oliver Stöneberg 2ac9fbc1bf
include all (internal non-generated) headers in clang-tidy checks (#4100) 2022-10-16 13:51:17 +02:00
Oliver Stöneberg 858585ceb1
disabled all clang-tidy checks for Qt generated files (#4525)
* disabled cll clang-tidy checks for Qt generated files

* enabled `bugprone-suspicious-include` clang-tidy warning
2022-09-30 07:27:03 +02:00
Oliver Stöneberg 5f79f0ccad
enabled `google-explicit-constructor` clang-tidy warnings (#4515) 2022-09-29 21:56:45 +02:00
Oliver Stöneberg b9e07e918e
enabled and fixed `readability-named-parameter` clang-tidy warnings (#4487) 2022-09-27 20:03:25 +02:00
Oliver Stöneberg 339484d2a1
mitigated and enabled more clang-tidy warnings (#4470)
* fixed some `performance-inefficient-string-concatenation` clang-tidy warnings

* fixed and enabled `modernize-replace-random-shuffle` clang-tidy warning

* fixed and enabled `bugprone-suspicious-string-compare` clang-tidy warning

* mitigated and enabled `readability-non-const-parameter` clang-tidy warnings

* clang-tidy.md: documented some disabled checks

* mitigated and enabled `performance-unnecessary-value-param` clang-tidy warnings
2022-09-16 18:58:59 +02:00
Oliver Stöneberg 888721ea12
disabled some clang-tidy checks which are not necessary and slow down the analysis / documented disabled checks (#4468)
* added `clang-tidy.md` to document our `.clang-tidy` configuration

* disabled some clang-tidy checks which are not necessary and slow down the analysis
2022-09-16 07:16:35 +02:00
Oliver Stöneberg dbc05da356
fixed some clang-tidy warnings (#4435) 2022-09-08 20:01:41 +02:00
Oliver Stöneberg b65b47d3a8
enabled and fixed `modernize-pass-by-value` clang-tidy warnings (#4169) 2022-07-28 22:51:45 +02:00
Oliver Stöneberg d6eb3a8f40
some changes for clang/clang-tidy 15 (#4310) 2022-07-26 15:30:53 +02:00
Oliver Stöneberg 9c2585866c
.clang-tidy: disabled `boost-*` and `darwin-*` and enabled `modernize-use-equals-delete` checks (#4173)
* enabled `modernize-use-equals-delete` clang-tidy warnings

* .clang-tidy: disabled `boost-*` and `darwin-*` clang-tidy checks
2022-06-06 11:17:20 +02:00
Oliver Stöneberg 412054e83a
enabled and mitigated `misc-unused-using-decls` clang-tidy warnings (#3543) 2022-06-04 16:39:25 +02:00
Oliver Stöneberg ce945ec7fc
enabled and fixed `modernize-use-override` clang-tidy warnings (#4168) 2022-06-03 21:32:39 +02:00
Oliver Stöneberg d36e05af28
enabled and fixed `modernize-use-emplace` clang-tidy warnings (#4165)
* enabled and fixed `modernize-use-emplace` clang-tidy warnings

* avoid unnecessary creation of temporaries in `emplace_back()` calls
2022-06-03 15:09:29 +02:00
Oliver Stöneberg d299d22fa2
updated CI to latest ubuntu and clang (#4004) 2022-05-22 15:27:32 +02:00
Oliver Stöneberg c71033548f
fixed some clang-tidy warnings (#3080) 2022-05-08 20:42:06 +02:00
Oliver Stöneberg 06d10b7474
fixed and enabled performance-for-range-copy clang-tidy warning (#3682) 2022-02-12 08:20:45 +01:00
Oliver Stöneberg 70dcc9544e
updated latest ubuntu version to 21.10 / updated to clang-tidy-13 (#3494) 2021-10-24 11:07:45 +02:00
Oliver Stöneberg 9ad7ab4263
use latest available clang-tidy in CI (#3230) 2021-04-24 20:20:09 +02:00
Oliver Stöneberg 5de58c4ddd
added clang-tidy to CI (#3218) 2021-04-18 21:51:47 +02:00
Oliver Stöneberg 96704c9971
fixed and enabled some more clang-tidy warnings (#3007) 2021-01-05 17:51:32 +01:00
Oliver Stöneberg d59abfd977
fixed clang-tidy warnings (#3006)
* clang_tidy.cmake: added clang-tidy-11 to list of executables to look for

* .clang-tidy: disabled warnings we are (currently) not interested in

* fixed clang-tidy warnings
2021-01-02 23:10:27 +01:00
Oliver Stöneberg fbf5858f76
fixed and enabled several clang-tidy warnings (#2816) 2021-01-02 19:10:25 +01:00
Georgy Komarov 47f9870560
.clang-tidy: Add -llvmlibc-* suppressions (#2942)
llvmlibc-* are checks related to the LLVM-libc coding standards:
* https://clang.llvm.org/extra/clang-tidy/checks/llvmlibc-callee-namespace.html
* https://clang.llvm.org/extra/clang-tidy/checks/llvmlibc-implementation-in-namespace.html
* https://clang.llvm.org/extra/clang-tidy/checks/llvmlibc-restrict-system-libc-headers.html

They are used internally in LLVM development, and they are useless for
us. Moreover, when compiling Cppcheck with llvm toolchain, clang-tidy
will generate lots of warnings related to these checks
(see: https://youtrack.jetbrains.com/issue/CPP-21351).
2020-12-13 16:53:18 +01:00
Oliver Stöneberg 1dd8d4afaf
fixes for Clang and clang-tidy 10 (#2588)
* clang_tidy.cmake: added clang-tidy-10 to program list

* fixed -Wrange-loop-construct Clang warnings

* fixed readability-qualified-auto clang-tidy warnings

* .clang-tidy: actually disable clang-analyzer-* warnings

* .clang-tidy: disabled some new warnings introduced with clang-tidy-10
2020-04-04 11:44:59 +02:00
Oliver Stöneberg 85b050acdf
add a "run-clang-tidy" CMake target when the executable exists (#2567)
* CMakeLists.txt: there is no REQUIRED option for include()

* added a "run-clang-tidy" target when the executable exists / always create compilation database / added .clang-tidy with all existing warnings have been disabled for now
2020-04-02 13:55:49 +02:00