Commit Graph

49054 Commits

Author SHA1 Message Date
Cristian Adam
68f3e37449 CMake Build: Enable separate debug info for all target types
Now all shared libraries and executables will get .debug files on
the platforms that support FEATURE_separate_debug_info

With the directory property _qt_skip_separate_debug_info certain
targets can retain the debug symbols in the binary e.g. lupdate with
MinGW 8.1.0 will cause objcopy / strip to fail.

Fixes: QTBUG-87015
Change-Id: I03b106e68ef0a42011d1ba641e6f686b2e7b7fb4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-04 01:41:06 +01:00
Shawn Rutledge
f6418343f1 Add QEventPoint::normalizedPosition() to replace normalizedPos()
In 4e400369c0 we deprecated
normalizedPos() because we suspect it's a legacy feature that few
users will need.  However Qt developers keep bringing up the continued
usage in autotests over and over.  (It's IMO not wrong to keep testing
deprecated functions in autotests, but the warning keeps attracting
attention.)

Of course it will turn out that normalizedPos() has users; we just
don't know how many.  One way to look at it is: why should they copy
a snippet of code to calculate it, when it costs us so little to
continue to provide this accessor.

It might also turn out that some users will complain that in Qt 5
it was passed through from the device driver (or at least from the
window system API) to the application, and perhaps the replacement will
not always work, for example if availableVirtualGeometry() ends up
wrong, or there is some strange scenario that generates events that are
out-of-bounds for the device that the event professes to come from, so
that the "normalized" coordinates also go outside the [0..1] range.
We reserve the right to put back the storage in QEventPointPrivate if
the need arises; so that's why this function is not inline.

We continue to hope that startNormalizedPos() and lastNormalizedPos()
are used even less and won't be missed much, because it would be
wasteful to store them all the time if only a few users need them.

Change-Id: I23ed78843e3f9e16133c5b6f462884a3845f91b6
Reviewed-by: David Skoland <david.skoland@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-03 20:36:35 +01:00
Martin Storsjö
46dd4df4b9 cmake: Set a warning flag based on the target arch, not build host
Change-Id: I0b524d52286210b7782dd710467fbc3a742d0c08
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-03 21:36:35 +02:00
Fabian Kosmale
d3ed7dac8a moc: Handle include in enum, take 2
The existing logic broke down when we reentered the enumerator parsing
loop, and encountered a INCLUDE_MOC_END token in the first handleInclude
call. Fix this by restarting the loop in that case.
Amends d8a2456fbf.

Fixes: QTBUG-88125
Pick-to: 5.15
Change-Id: I87acaa986a81de53730eddc40bc7d48c15328aba
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-11-03 19:36:34 +00:00
Volker Hilsheimer
ca85d3370f Remove left-over and unnecessarily exported operator==
Amends a45a3b1ece

Change-Id: If481ec1818ec4cb263f271f0099f7452fbdce1a0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-11-03 20:36:34 +01:00
Volker Hilsheimer
5ea1f40350 Deprecate QFontDatabase constructor
Move private methods into the private class.

Fixes: QTBUG-88114
Change-Id: I92fa52980ed5a0675eee310359d8875f614921e6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-11-03 20:36:34 +01:00
Volker Hilsheimer
a50f0f045d Get rid of all instance usage of QFontDatabase
All QFontDatabase APIs are static, use them accordingly.

Task-number: QTBUG-88114
Change-Id: I0e4a7508646037e6e2812611262eed8b6d7ad3de
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-11-03 20:36:34 +01:00
Shawn Rutledge
488e72cce8 Update third-party md4c to version 0.4.6
If you try to parse markdown containing null characters, it should not
crash anymore.

[ChangeLog][Third-Party Code] md4c was updated to 0.4.6.

Pick-to: 5.15
Fixes: QTBUG-87965
Change-Id: I6e0ac6f4ecb41c0836f22c7a6a2d510102c933c0
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-11-03 20:36:34 +01:00
Alexey Edelev
dc43061e9a CMake: Add handling of user-defined INPUT_foo cache variables
"configure" script translates feature-related parameters to INPUT_
variables instead of FEATURE_.

Both INPUT_ and FEATURE_ variables passed to cmake script are
equivalent. FEATURE_ has higher priority in case if both are defined.

Fixes: QTBUG-87755
Change-Id: If697a0d62ab839877a3196ea74e631582a570dda
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-03 16:28:14 +01:00
Lars Knoll
f8c30759d9 Make the QMultiHash(const QHash &) constructor explicit
And add a QMultiHash::unite(const QHash &) method to avoid
a copy of the data when inserting a QHash into a multi hash.

Change-Id: I864aa9d2b9b7b2c367c3c4d140a2ce2f5408ae09
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-11-03 16:28:14 +01:00
Lars Knoll
a9c52dbdf4 Fix qHash(QMultiHash)
The old code was trying to convert a multi hash to a QHash. While
that worked in Qt 5 it won't compile in Qt 6 anymore.

QHashCombineCommutative also can't be used with a std::pair.
ADL won't find the correct instance with a namespaced build,
as qHash(std::pair) is defined after QHashCommutative. Fix
the code to compile and work correctly.

Change-Id: Ice2bc3ab4244e310cbbb5e0f31fc11eb14f5faf3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-11-03 16:28:14 +01:00
Lars Knoll
ba1266baec Use variadic templates to generalize MapSequenceResultType
This helps us determine the correct result type for std::vector, as
that one has two template arguments and would otherwise not get
caught here.

Change-Id: Ie887088bce25df2cadc8422a4212dc33d57ecfa5
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-11-03 16:28:14 +01:00
Lars Knoll
5646f46ec9 Clean up container metatype declarations in QMetaType
Remove forward declarations, we have those already from qcontainerfwd.h.

Change-Id: I1b8a91ece912e6cdf747f4e2a750f0e85bcb5b2a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-03 16:28:14 +01:00
Lars Knoll
089fc2df1b Clean up qcontainerfwd.h
Add missing declaration of QVariantList and friends. Replace
class with typename for template parameters.

Remove some left-over forward declarations in other headers.

Change-Id: I31d443019d48b619e02834395dafa40182cac7b9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-11-03 16:28:14 +01:00
Lars Knoll
7d75a48507 Cleanup container declarations in qtypeinfo.h
Use variadic templates to avoid having to use several macros to
declare movable containers.

Add missing movable declaration for QCache.

Change-Id: I32d6a399ef8e6c39021df04deedfbbf0c526fc84
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-11-03 16:28:14 +01:00
Volker Hilsheimer
742de50c5e Address API review comments for QInput/QPointingDevice
- Give default constructor an optional parent, as is standard for QObjects
- remove default for QObject parent from inheritance constructor
- make QPointingDeviceUniqueId comparison inline, remove superfluous
inline of hidden friends
- mark read only properties as CONSTANT
- remove bit-size from enum types; they are stored in the private,
and there are just a few instances; no need to save a few bytes at the
expense of performance and code cleanliness

Change-Id: Ie7d4a587362714e9d3bc41447cef786bbdb382c6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-11-03 13:06:15 +01:00
Fabian Kosmale
a31dde22db QProperty: Fix notification logic for eager properties
This ensurse that we do not do dobule notifications in setValue.
Moerover we avoid needless notifications in markDirtyAndNotifyObservers
when the value did not change. Lastly, if the value did actually change,
we pass that information along to notify, so that we do not evaluate the
eager property twice.
Fixes a test-case which errorneously relied on the old behavior, and
adds a new test which verifies that the fix works.

Change-Id: I8ec6fa2fe8611565dfc603ceab3ba5f92999b26c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-03 13:06:15 +01:00
Fabian Kosmale
c1c991c319 Remove std::function from QProperty interface
std::function as a type is rather unfortunate for us, as its SSO buffer
makes it rather large, and we can ensure that the function is never
empty.
Considering that we do need to allocate memory for
QPropertyBindingPrivate anyway, we can get rid of the SSO buffer and
instead coalesce the allocations (similar to how std::make_shared works).
The memory looks then like
[--QPropertyBindingPrivate--][Functor]
and QPropertyBindingPrivate can get a pointer to the functor via
reinterpret_cast<std::byte>(this)+sizeof(QPropertyBindingPrivate).
To actually do anything with the functor, we do however need a "vtable"
which describes how we can call, destroy and move the functor. This is
done by creating a constexpr struct of function pointers, and storing a
pointer to it in QPropertyBindingPrivate.

As a consequence of those changes, we cannot use QESDP anymore, as we
now have to carefully deallocate the buffer we used for both the
QPropertyBindingPrivate and the functor. We introduce a custom
refcounting pointer for that. While we're at it, we make the refcount
non-atomic, as bindings do not work across threads to begin with.

Moreover, we can now make the class non-virtual, as that was only needed
to hack around limitations of QESDP in the context of exported symbols.

Change-Id: Idc5507e4c120e28df5bd5aea717fe69f15e540dc
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-11-03 13:06:14 +01:00
Assam Boudjelthia
a95ddcf97b Android: fix crash by passing the right Handle to dlsym()
dlsym() should be taking a Handle that is created by dlopen() instead of
pHnd.

* https://linux.die.net/man/3/dlsym

Fixes: QTBUG-84849
Pick-to: 5.15
Change-Id: Ic192736268ef9cbfdb86cf66d20082b14070ba00
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-11-03 12:06:14 +00:00
Eskil Abrahamsen Blomfeldt
7d875b4306 Add deprecated accessors for legacy font weight
In 3558704ed5 we changed the font
weights to use the OpenType weights rather than our own
non-standard scale.

This can cause difficulty for people who have legacy font
weights stored as ints and no way to convert them. Therefore,
we add accessors for the legacy font weights to ease the
transition.

Change-Id: I2a591c62895dfa1a2310d9a2d0cdcf08de08f3a4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-11-03 13:06:14 +01:00
Joerg Bornemann
9a50d62039 CMake: Fix Windows top-level configure.bat
We must write config.opt in the same directory we're reading it from.
We must not write the -top-level argument to config.opt.
This amends commit 2a29426e39.

Change-Id: I96da9094579fec29c290411677d6b538878399f4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-03 13:06:14 +01:00
Alexandru Croitor
72aab8b487 CMake: Bump the minimum required CMake version to build Qt to 3.18
Add a new function that returns the minimum CMake version required to
build Qt. Pass that value to cmake_minimum_required() when building
qtbase and its standalone tests.

The minimum supported CMake version is read from qtbase/.cmake.conf
and its value should be updated when the need arises. It's the main
source of truth for all repos.

Provide a way to lower the minimum CMake version at configure time by
passing a value via QT_FORCE_MIN_CMAKE_VERSION.
This is not an officially supported way of building Qt. If the
specified version is lower than Qt's supported minimum, show a
warning.

Nevertheless the option is useful for testing how Qt builds with a
different minimum CMake version due to different policies being
enabled by default.

Issue warnings for CMake versions that are higher than the minimum
version but are known to cause issues when building Qt.

A counterpart change is needed in qt5 to ensure the minimum CMake
version is set at the proper time for top-level builds.

Ideally we would use the same 'check the CMake minimum version` code
in all our repositories, but that will cause lots of duplication because
we can't really find_package() the code and doing something like
include(../qtbase/foo.cmake) hardcodes assumptions about repo
locations.

So for now we don't bump the minimum version in child repo
cmake_minimum_required calls (qtsvg, qtdeclarative, etc).
Instead we record both the minimum supported version and the computed
minimum version (in case a different version was forced) in
QtBuildInternalsExtra.cmake.
Then we require qtbase's computed min version in
qt_build_repo_begin().

This won't set policies as cmake_minimum_required would, but at least
it propagates what minimum CMake version should be used for child
repos.

We might still have to bump the versions in child repos at some point.

Task-number: QTBUG-88086
Change-Id: Ida1c0d5d3e0fbb15d2aee9b68abab7a1648774b9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-03 13:06:14 +01:00
Lars Knoll
aaabdf8457 Rename QContainerTraits namespace to QContainerInfo
We'll need QContainerTraits as a class for changing properties
of our containers, so free up that name. This is not a problem,
as the namespace is new in Qt 6 and has only been used internally
so far.

Change-Id: I6d6b9d9c32b92b77e66323f1fc29b3ddd8baa98f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-03 13:06:14 +01:00
Mårten Nordheim
1776c0b40d QtTestLib: Update porting guide
Few breaking changes. Some things moved header, but as they didn't
change namespace, naming or signature, and the old headers now include
the 'new' headers, it is SC anyway.

Change-Id: I6b0556049f6d9203dcf7420317a14992fbe85a80
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-11-03 13:06:14 +01:00
Lars Knoll
df57e1ac65 Code cleanups
Mark constexpr booleans as inline.

Change-Id: Ib7e0f9d96ff3894b72dcd13c07643ef3b9e6e2c5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-11-03 13:06:14 +01:00
Lars Knoll
d5e913cc60 Fix QDataStream compatibility for QTextFormat::TextUnderlineColor
The enum value of that property changed. Use the same mapping trick
as with two other properties to ensure backwards compatibility
in QDataStream.

Change-Id: I01b36f9ecbcaf40e7c8523da33ea4c8f12821a63
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-11-03 13:06:14 +01:00
David Skoland
801e703a79 Standardize metaType stuff in QMetaProperty and QVariant
Change-Id: Idbb03d320039e8ddc4b7a7f42d2ba93ee47c456f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-11-03 13:06:14 +01:00
Tor Arne Vestbø
6032a9ca1a Allow adding linker flags to qmake module pris
The flags go before the library in the final linker line, as opposed
to the dependencies declared in LIBS.

This allows us to declare the flags for the entrypoint
in the project file of the entrypoint, instead of in
a standalone prf.

Change-Id: I35c054fe9fdaa6add7cd0e8ba3f7304f975ff80f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-03 00:14:04 +01:00
Volker Hilsheimer
2096463afc Fix typo
Change-Id: Ia8ce9ac486d1ee54a772367cba90b42197f622d1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-02 18:40:18 +01:00
Mårten Nordheim
8d36149262 Unfix QTest touch API documentation
Partial revert of 5866b82e24.

The function is still in the QTest namespace.

Change-Id: I5e25b405baf07e61781ca4a527601ef0bf8ce6a4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-02 15:54:43 +00:00
Volker Hilsheimer
233b9d7c5f Make RGB_MASK inline constexpr
As per comment on API review.

Change-Id: If4bd234372ebad0e3bfac41642981a612fd165bd
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-11-02 16:46:58 +01:00
Tor Arne Vestbø
517c885239 Allow adding extra content to module pri
On the qmake-side we had exports, but they were quoted.

Change-Id: I95af4b927079691cab6403fec850f345ba181a00
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-02 16:44:10 +01:00
Volker Hilsheimer
ba7ef28ea9 Default to cmake when building Qt
People that insist on qmake builds of Qt can configure with -qmake

Task-number: QTBUG-87049
Change-Id: I5729b654d4c8b9c6b526234ba5563aff8fd750e1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-11-02 15:36:13 +00:00
Mårten Nordheim
6886b11625 Remove unnecessary cast-to-int for parameter to QBitArray
It was ported to qsizetype after the cast was introduced

Change-Id: I00caff1d960f403990f93fcec6a7969e62b4cc99
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-02 16:35:57 +01:00
Joerg Bornemann
1bb6779389 CMake: Let configure guess the compiler from mkspec argument
The arguments -platform, -xplatform and -device determine the mkspec
that's used for the qmake companion files.

If the user specifies a mkspec that indicates usage of clang or icc,
set the respective CMake variables to use one of those compilers.

Fixes: QTBUG-87836
Change-Id: I2b10d819b0eb92a97d7f79672547b1e2d821cf33
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-02 16:33:40 +01:00
Giuseppe D'Angelo
d3046cbe88 Do not #define dynamic_cast
It's illegal. [macro.names]/2:
 "A translation unit shall not #define or #undef names lexically
  identical to keywords"

If someone tries to use dynamic_cast in a no-rtti scenario, let's
just have the compiler yell at them for that.

Change-Id: I70a7b55a93d34c433e874d379acae8b256620f80
Pick-to: 5.15
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-11-02 16:22:59 +01:00
Anton Kudryavtsev
ebfd0b14aa macOS + FreeType: fix crash with non printable unicode
Task-number: QTBUG-84096
Pick-to: 5.15
Pick-to: 5.12
Change-Id: Ia60b7094ef9e82cf24f5a8b7995000ae65bb379a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-11-02 15:22:11 +00:00
Shawn Rutledge
4edcea762d DropSite example: support markdown
If the mime data includes text/markdown, display it decoded in the QLabel,
and also display the raw markdown in the table below.  QLabel supports
markdown since 51cbd5288c.

Ideally we should add proper support for markdown to QMimeData, but
it's too late to do that for Qt 5.

Pick-to: 5.15
Change-Id: I2a9998e4b239658fe49f39786e7c4fdd0c08b21a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-11-02 16:08:36 +01:00
Joerg Bornemann
93ac7b9d17 qmake/vcxproj: Fix handling of extra compiler outputs
In commit 68866b1a7b we introduced a bug:
At a point where the first output of an extra compiler is extracted, we
try to evaluate the first output as qmake variable. This is as
nonsensical as it sounds and leads to malformed extra compiler output in
vcxproj files.

Pick-to: 5.15
Task-number: QTBUG-87601
Change-Id: Ib9aaf8a6eed8c69243f364554325c240d0bfc7f4
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-11-02 15:31:01 +01:00
Edward Welbourne
5b57ce06a8 Resolve corelib's remaining ### Qt 6 comments
No action taken at Qt 6, suggesting it shall never happen.
Four removed, one converted to Qt 7, others converted to unversioned TODOs.
Filed Jira tasks, and referenced in comments, for those retained.

There remain two "once bootstrap builds are obsolete" comments and
one other on which pending action may yet happen.

Fixes: QTBUG-85700
Change-Id: Ib140a6a21c63370e51e4734cc591f67573a29d9a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-02 15:04:46 +01:00
Giuseppe D'Angelo
4703e07a7c QMarginsF: document that isNull/operator==/operator!= are fuzzy
Change-Id: Id1865f6d608e5cdbb6d24351aea5f6801a519684
Pick-to: 5.15
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-11-02 14:43:32 +01:00
Olivier Goffart
1926e09b32 Warn if Q_FOREACH is used with a non-shared container
Show a deprecation warning if a non shared container is used within
Q_FOREACH, because it would make an expensive copy of the container

Change-Id: I70cfd789b5b8d9f5b1bd6e0a57e5e968e1c6a0ca
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-11-02 14:28:17 +01:00
Giuseppe D'Angelo
d76b9d86e8 QLayout: unify the constructors
Drive-by, make QLayout constructor explicit, as it should have
always been.

[ChangeLog][QtWidgets][QLayout] The QLayout constructor taking
a QWidget pointer is now explicit.

Change-Id: If6accfb2e7e810fa08adacea9e674c99121f6bc6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-11-02 14:25:03 +01:00
Sona Kurazyan
3b8d37b1f0 Update the porting guide for QFuture
Document the source compatibility breaks introduced by the recent
changes (ff0ba7e2d7 and
30a1683f65) in the porting guide.

Task-number: QTBUG-87096
Change-Id: I5b725c863b1077d59074d4bd17a4456e3d87918c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-11-02 14:09:52 +01:00
Assam Boudjelthia
75d32a195a Android: fix documentation about ANDROID_EXTRA_LIBS
ANDROID_ABIS should be used instead of ANDROID_TARGET_ARCH.

Fixes: QTBUG-81866
Pick-to: 5.15
Change-Id: I6dc9e0cd2a19bea8864e3ab4174bd609c0aad4dc
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-11-02 15:08:35 +02:00
Wang Chuan
231be2e0a1 QCombobox: propagate the palette to the embedded line edit
Let the new created embedded QLineEdit use the palette from QCombobox,
when calling [setEditable(true)]

Fixes: QTBUG-81533
Pick-to: 5.15
Change-Id: Ia406dd8122a348e185f0e94d027646b95eeaa76e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-11-02 20:27:00 +08:00
Laszlo Agocs
be37937614 rhi: gl: Do not bother with glDrawBuffers(GL_BACK)
It's per framebuffer and the color target for the default fbo
is never altered. So no need for this call. This is useful because
it avoids having to deal with the controversy around GL_BACK (where
the GL, but not the ES, spec claims some quite nonsensical things
about GL_BACK not being accepted by glDrawBuffers (in the name of
stereo support?), nevermind GL_BACK being the default value...),
and while what we have in place now seems to be ok with many
implementations, it may generate a GL error with others - so
just remove the call in order not have to think about this
legacy nonsense)

Task-number: QTBUG-88070
Change-Id: I051c60a3041865a3434801b57da2b7acb518b8fe
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-11-02 13:08:57 +01:00
Allan Sandfeld Jensen
93f558a0cf Remove usages of Q_FOREACH
The last places outside tests, tools and qnx platform code

Change-Id: I9918861888cf58bf5dbae5603febb8885fc67709
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-02 13:06:22 +01:00
Alexandru Croitor
b54dd671aa CMake: Bump the minimum required CMake version to use Qt to 3.14
At the moment our examples require a minimum of 3.14 due to changes
in upstream CMake's Autogen functionatlity to support Qt 6. Anything
lower would simply not work with Qt 6.

It's not clear yet if we actually want to require 3.14, or something
higher. At the very least there were many significant changes to
support iOS in CMake 3.15.

But for now just bump the version checked by Qt6Config.cmake to be
consistent with what's in our examples.

Task-number: QTBUG-88086
Change-Id: I119c2ad05a18c357fe7c659b30685af87475fc84
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-11-02 13:06:22 +01:00
Yuhang Zhao
4b694032df Improve clang-cl support for Qt6
1. clang-cl doesn't support "-fno-exceptions", it uses msvc's parameter.
2. some parameters supported by msvc are not supported by clang-cl
and they are causing huge warning message flood, don't add them.
3. use correct optimize parameter for clang-cl.

Change-Id: Idbadf139127143c5fa6c49068588cb26f47da7a2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-02 20:06:22 +08:00