The databasemanager test case that will provide PCH for all other test
cases, what means all other test cases will use this PCH without
compilation.
- added a new PROVIDES_PCH for tiny_configure_test()
- this new implementation will be enabled from Qt v6.8.0 because of
https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-126729
Must be disabled with vcpkg because the qtbase port doesn't define it
and it causes incompatible API, eg. QByteArray::isNull() or
QString::toLongLong() is defined inline through this
QT_CORE_INLINE_SINCE() deprecated macros and we end up with multiple
defined symbols, what means QtCore is compiled with old API without
inline because it doesn't define this QT_DISABLE_DEPRECATED_UP_TO and
TinyORM has inlined symbols. It of course works with shared DLL builds
but fails with static/-md triplets (builds). It's a good idea to use the
same setting for this like qtbase has anyway.
It must be macro() because the cmake_dependent_option() sets a local
variable when the <depends> is FALSE, what means, if this is
the function() the variable will be undefined outside the scope.
This reverts commit dc24dd4133.
Determine whether the minimum Qt version was satisfied using and set the
internal cache variable TINY_QT_VERSION.
Command used to obtain a Qt version: "${QT_QMAKE_EXECUTABLE}" -query
QT_VERSION This check is needed because eg. QtCreator sets the
QT_QMAKE_EXECUTABLE based on the selected KIT, but there can be other Qt
versions on the system/user path so even if the QT_QMAKE_EXECUTABLE
contains qmake from eg. Qt v5.15 then the find_package() function is
still able to find the correct Qt version, so this check is specifically
for the QtCreator and informs about wrongly select KIT.
If the QT_QMAKE_EXECUTABLE command can't be executed or it returns a
non-zero exit code then continue a normal execution and leave the
decision logic up to the find_package() function.
- for Qt <6 disabled deprecated APIs for Qt <=6.0
- added temporary workaround for
QVERIFY_EXCEPTION_THROWN() vs QVERIFY_THROWS_EXCEPTION(), to support
Qt v6.8 and also older version at the same time
vcpkg builds must go on as far as possible (Debug or Release) so don't
use /sdl and also don't use /W4 to avoid the following warning for every
TU all over log files:
cl : Command line warning D9025 : overriding '/W3' with '/W4'
Everything was fixed in Clang v18, so extern constants are always
enabled by default on all platforms and for both shared/static build
types.
Clang <v18 has still custom patched logic to avoid compile errors and
crashes, but this logic will be removed soon.