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