Commit Graph

181 Commits

Author SHA1 Message Date
Oliver Stöneberg 93a53af168
modernized and cleaned up CMake files / explicitly check for CMake 3.13 with Visual Studio (#5825) 2024-01-05 11:07:16 +01:00
chrchr-github efa8a08407
Set main version to 2.13.99 (#5818) 2024-01-04 22:00:30 +01:00
Oliver Stöneberg 615e4c01c4
bumped minimum requirements to GCC 5.1 / Clang 3.5 / Visual Studio 2015 / CMake 3.5 (#5398)
The current versions only have partial C++11 support which fortunately
has caused us only few issues so far but it would be good to finally
have fully working C++11 support. This also gets rid of several CI
builds on very outdated platforms.

The outdated platforms were used to also test CMake 2.8 but as future
versions of CMake will drop combability with CMake < 3.5 this is a good
time to also drop that requirement on our part.

This PR does not remove or update any outdated code.
2024-01-04 21:31:08 +01:00
Oliver Stöneberg dd869cf808
added CMake option `EXTERNALS_AS_SYSTEM` to treat external includes as `SYSTEM` ones (#5386)
Although these files are part of our repo changes are being done via
their original projects so it might make sense to treat these as system
includes for some people instead of local ones.

Co-authored-by: Daniel Marjamäki <daniel.marjamaki@gmail.com>
2024-01-03 11:05:32 +01:00
Oliver Stöneberg f2461781fd
added `xml.h` wrapper for TinyXML2 / cleaned up suppressions of Clang compiler warnings (#5700) 2023-11-26 14:04:35 +01:00
Oliver Stöneberg 693702d98d
compilerDefinitions.cmake: fixed faulty `add_compile_definitions()` value for MSVC (#5690)
also fixes `<command line>(7,9): error : macro name must be an
identifier` with `clang-cl` allowing the build to complete
2023-11-22 11:02:35 +01:00
orbitcowboy 966a89d5f4
Removed -DTIXML_USE_STL flag (#5624)
Updated version of https://github.com/danmar/cppcheck/pull/5145
2023-11-05 15:54:22 +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 122e142726
fixed #12113 - made CMake build work with UBSAN and GCC (#5590)
GCC does not support `-fsanitize=nullability`
2023-10-24 21:53:58 +02:00
Oliver Stöneberg 85fe627c68
fixed some typos (#5562) 2023-10-17 18:32:07 +02:00
Oliver Stöneberg 84f2485a26
fixed #7099 - added optional `man` target to CMake / build manpage in CI (#5536) 2023-10-09 22:20:36 +02:00
Oliver Stöneberg 2f62e9d316
mitigated several compiler warnings / suppress compiler warnings in CI where we don't care about them (#5497)
There's no need to generate any warnings in the CI unless we react on
them.
2023-10-09 12:25:56 +02:00
Oliver Stöneberg ca20152e51
findDependencies.cmake: use `FindPython` instead of deprecated `FindPythonInterp` (#5485)
This fixes the following warning with CMake 3.27:
```
CMake Warning (dev) at cmake/findDependencies.cmake:42 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:15 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.
```
2023-09-27 10:06:03 +02:00
Martin Delille a87e9e1042
Consider pcre debug suffix for Windows (#5429)
I'm suggesting this patch from the conan recipe:
https://github.com/conan-io/conan-center-index/blob/afcf3ba/recipes/cppcheck/all/patches/0003-pcre-debuglib-name.patch
2023-09-12 10:36:35 +02:00
Daniel Marjamäki 4fa1c7d5f9
2.12.99: Set versions (#5427) 2023-09-10 18:43:00 +02:00
Oliver Stöneberg d8b44dff56
fixed/suppressed several compiler warnings (#5327) 2023-08-16 19:35:53 +02:00
Oliver Stöneberg de9795b07b
deprecated qmake build system / removed Qt5 fallback when using `USE_QT6=On` (#5271)
QT 5 is now completely EOL and since we never supported Qt6 in qmake
which also has various shortcomings, it is time to at least deprecate it
and direct users to CMake instead.
2023-08-09 22:40:15 +02:00
Oliver Stöneberg 4e8c240129
updated CI to Clang 17 (#4797) 2023-08-09 12:45:15 +02:00
Oliver Stöneberg dcdf67a694
some `-Wdouble-promotion` Clang compiler warnings (#4820) 2023-08-07 20:44:25 +02:00
Daniel Marjamäki 767c0fb337
cmake/versions.cmake: version string must have 3 parts otherwise cmake might crash (#5204) 2023-06-28 16:25:11 +02:00
Daniel Marjamäki 557241ad71 2.11.99: Set versions 2023-06-22 13:50:51 +02:00
Rainer Wiesenfarth f4f58bf020
Fix #11081 GUI: Windows release build crashes (#5083)
* Fix #11081 GUI: Windows release build crashes

Use generator expressions rather than if statements when adding compiler
options or definitions.

* Fix #11081 GUI: Windows CMake debug build fails with default options

When DISABLE_CRTDBG_MAP_ALLOC is using the default value (OFF), the
debug build of cppcheck-gui fails, as the "realloc" method names in some
of the Qt headers are replaced by the macro defined by the compiler.
Thus DISABLE_CRTDBG_MAP_ALLOC is explicitely set when compiling
cppcheck-gui in Debug mode using MSVC.
2023-06-07 11:33:55 +02:00
Oliver Stöneberg 5ec0ad6bed
use `ccache` for sanitizer builds / do not use precompiled headers with `ccache` (#4910)
* added CMake option `DISABLE_DMAKE` to disable `run-dmake` dependencies

* tools/CMakeLists.txt: added TODO

* use `ccache` for sanitizer builds

* aligned selfcheck between sanitizer workflows and disabled some currently unnecessary steps

* CI-unixish.yml: do not use precompiled headers with `ccache`
2023-04-01 09:40:10 +02:00
Oliver Stöneberg cb915085ea
use C++17 when building with Visual Studio in CMake - fixes GUI CI builds (#4924)
* use C++17 when building with Visual Studio in CMake

* printInfo.cmake: print more variables

* CMakeLists.txt: set C++ standard earlier
2023-03-31 10:37:53 +02:00
Oliver Stöneberg 7ce82e4fcb
enabled and fixed remaining `-Wdeprecated-copy-dtor` Clang compiler warnings (#4860) 2023-03-07 12:28:00 +01:00
Daniel Marjamäki 340baf10cd
Adjust version 2.11.99 => 2.10.99 (#4851) 2023-03-04 17:19:31 +01:00
Oliver Stöneberg 36192c50f6
removed unnecessary OSS-Fuzz related builds from CI (#4827) 2023-02-25 15:40:12 +01:00
Oliver Stöneberg a250e6b569
enabled and mitigated `-Wunreachable-code` Clang warnings (#4818) 2023-02-24 21:57:44 +01:00
Oliver Stöneberg f0ebaf9536
compileroptions.cmake: fixed workaround for Clang >= 14 (#4737) 2023-02-16 16:42:08 +01:00
Oliver Stöneberg 367847cf57
updated CI to Clang 16 (#4641) 2023-02-15 19:46:13 +01:00
Oliver Stöneberg 1a460d7bc0
bumped version to 2.11 (#4751) 2023-01-29 15:18:22 +01:00
Oliver Stöneberg b097eca2ec
added handling of library element `entrypoint` to GUI / added GUI tests to CTest (#4744) 2023-01-27 19:43:08 +01:00
Oliver Stöneberg a0b1285f4a
added CMake option `BUILD_CORE_DLL` to build lib as `cppcheck-core.dll` with Visual Studio (#4733) 2023-01-26 22:13:07 +01:00
Oliver Stöneberg edbd4f6e81
printInfo.cmake: only print UI-related option if `BUILD_GUI` is specified (#4721) 2023-01-18 16:58:12 +01:00
Oliver Stöneberg 48a0d934a3
compilerDefinitions.cmake: specify proper define for "safe libc++" (#4672) 2023-01-02 22:10:50 +01:00
Oliver Stöneberg 8bb5ac0efd
improved `MathLib::to{ULong|Long|Double}Number()` and increased test coverage / added CMake option `USE_LIBCXX` / fixed #10695 (#4611) 2022-12-07 09:20:09 +01:00
Paul Fultz II 436c5c8efc
Update version check in ccache.cmake so ccache can work on older cmake versions (#4567)
* Remove ccache.cmake so ccache can work on older cmake versions

* Revert "Remove ccache.cmake so ccache can work on older cmake versions"

This reverts commit 22301d41d31e72f7d1bbb68dfa601b0e3bf79b22.

* Update version
2022-11-14 12:11:31 +01:00
Daniel Marjamäki 94c3108494 GUI: Detect when version is old 2022-10-09 18:51:01 +02:00
Oliver Stöneberg 3dfdb409c6
fixed and enabled some Clang compiler warnings (#4517) 2022-09-29 21:59:02 +02:00
Oliver Stöneberg 767db58a5b
findDependencies.cmake: no need to specify `COMPONENTS` for boost when using it header-only (#4511) 2022-09-27 18:49:38 +02:00
Oliver Stöneberg fd9d05300e
handle precompiled headers with `ccache` / fixed caching in some docker builds (#4505)
* CI-unixish.yml: handle precompiled headers with `ccache`

* actually support `ccache` in CMake < 3.17

* CI-unixish-docker.yml: split CMake build and test execution into separate steps

* findDependencies.cmake: only print message about macthcompiler being disabled when it is actually used

* CI-unixish-docker.yml: added missing `ccache` CMake options
2022-09-26 18:21:43 +02:00
Oliver Stöneberg 433293b9ab
added missing version bumps to 2.10 (#4420) 2022-09-09 21:02:04 +02:00
Oliver Stöneberg b3762cd76a
actually perform system tinyxml2 build on macos / fixed system tinyxml2 include (#4445)
* lib/CMakeLists.txt: removed unnecessary external include

* look up tinyxml2 include dir when using system one and specify it

* lib/CMakeLists.txt: do not treat bundled headers as system ones

* CI-unixish.yml: actually perform system tinyxml2 build on macos
2022-09-06 18:30:59 +02:00
Paul Fultz II a586b9e8ee
Use safe compile option (#4413) 2022-08-27 23:22:31 +02:00
Oliver Stöneberg 1262c98416
some clang-tidy CMake integration improvements / fixed `SOVERSION` with multi-digit versions (#4391) 2022-08-22 20:13:13 +02:00
Oliver Stöneberg 1202efb438
some `--exception-handling` related improvements (#4368) 2022-08-20 20:54:31 +02:00
Oliver Stöneberg 32c0167eab
specify `-pipe` for GCC to use pipes instead of temporary files - greatly reduces I/O usage (#4360) 2022-08-16 22:12:01 +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 f644938eb0
fixed Cppcheck version (#4292) 2022-07-19 20:42:19 +02:00
Oliver Stöneberg e8b0f12367
replaced `if(MATCHES)` with `if(STREQUAL)` (#4263)
`MATCHES` does regular expression matching which is not the intended behavior here. `Clang` still requires it since it also needs to match `AppleClang.
2022-07-11 10:46:18 +02:00