Commit Graph

46641 Commits

Author SHA1 Message Date
Joerg Bornemann
8a0676d5f9 configurejson2cmake: Generalize special case support
The SpecialCaseHandler supported only two file names: "CMakeLists.txt"
and "configure.cmake". Generalize the code to allow for arbitrary file
names. We will use this in a subsequent commit.

Change-Id: I0adada91409a11a369fd1cf2d6ab21cc8f28ba0f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-13 10:51:15 +02:00
Robert Loehning
3094bcc3c5 Check returns of hex2int in get_hex_rgb
Avoids undefined behavior when trying to shift negative values.

Fixes: oss-fuzz-21860
Fixes: oss-fuzz-23968
Pick-to: 5.15 5.12
Change-Id: I879c97624e3f8ba9cf01e0a3a682379cd8c4a199
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-13 10:26:25 +02:00
Friedemann Kleint
3dff5e6316 QtGui: Clean up event headers
- Remove unimplemented  QSinglePointEvent()
- Remove forward declaration of QTouchEventTouchPointPrivate
- Update copyright and add comment to qevent_ph.h

Task-number: QTBUG-72173
Change-Id: Ie64b6071f2611001dcd8e3deec2f5ed382bb2312
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-13 10:15:08 +02:00
Giuseppe D'Angelo
43fa292ff6 QVariant::setValue(): enable move semantics
Given we optimize for the case where the new value is of the
same type of the one already stored in the variant, enable move
assignment for that case.

As a drive-by, avoid a path to detach() for data() if we know
we're detached.

Change-Id: I9abbdc10637ce77ebb747b49d83e1ef914d997bb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-13 01:32:53 +02:00
Giuseppe D'Angelo
23444d4b26 QCryptographicHash: explicitly activate the used union member
A union member lifetime does not start automatically if one
takes a pointer to a union member and writes into the member.
Only the subscript syntax in an assignment features such
automatic lifetime start [class.union§6].

In the other cases, one is allowed to get a pointer to the
storage ([basic.life§6]) but has to start lifetime explicitly
via placement new. Hence, do so, or we end up in UB land.

We're left with the problem of reset() which may be called
multiple times. I think we can actually just create a new
object in the same storage without destroying the pre-existing
object by exploiting [basic.life§5]: reusing the storage causes
lifetime end for the old object. Moreover, since the union
is over trivial datatypes (C structs), there's no side effects
in the destructor of the old object, so there is no need
to call it.

Drive by fix, apply some DRY for SHA3.

Change-Id: Idc351568635e59d45421311f043956ab3aabf389
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Linus Jahn <lnj@kaidan.im>
2020-07-12 21:48:18 +02:00
Giuseppe D'Angelo
20848f6e83 QVLA: use std::aligned_storage
Remove the hand-rolled union used only to achieve alignment.

Change-Id: I8e635fa0d09042f30fd67d589db9bc384c0ec8ef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-12 21:48:11 +02:00
Linus Jahn
1ecc884bfd QStringView: Remove outdated note about usage with QList
Change-Id: Id1cef09642ccde701e57e8f0a3a3d0e5fcf47e5c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-12 21:07:05 +02:00
Tor Arne Vestbø
2f8df4d1a8 Disable PCRE2 JIT on macOS ARM64
It's already disabled for many other ARM platforms, and upstream
support for Apple Silicon is still pending, so we disable it for
now. See: https://bugs.exim.org/show_bug.cgi?id=2618

Fixes: QTBUG-85528
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I42b6e5efaa07c9b832cd05a47436eb86a214e9bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 23:34:33 +00:00
Robert Loehning
e80be8a43d Fix buffer overflow
Fixes: oss-fuzz-23988
Pick-to: 5.15 5.12
Change-Id: I4efdbfc3c0a96917c0c8224642896088ade99f35
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-10 22:55:28 +02:00
Lars Knoll
744e55b85a Remove that casts to int/uint that shouldn't be there anymore
Remove casts that truncate a qsizetype or size_t in qstring.cpp

Change-Id: Ibc1515f9906d5a0840254e60e2e7dfca716b63b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 19:04:11 +02:00
Tor Arne Vestbø
7931d96aeb Clarify relation between Qt::Keys and Unicode ranges
The Qt::Keys have been re-ordered and comments added to reflect
the layout of the enum values in relation to the Unicode ranges.

Bits 0x00200000, 0x00400000, and 0x00800000 have been reserved
in case we want to use them for Qt::ModifierKey later on. Doing
so would require changing Qt::Key_unknown to not overlap with
these bits, or to accept that Modifier + Qt::Key_unknown is not
a supported usecase.

Change-Id: I580a01b0a47a28948a0f0018c47931395933b8f2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-10 15:56:40 +02:00
Lars Knoll
9f33ad904a Move all the QProperty related code into one compilation unit
And mark some methods as inline.

Performance is critical for our new property system. Compiling
it in one unit makes it possible for the compiler to do a much
better job at inlining and generating optimized code.

Improves performance of binding evaluations by another 20%.

Change-Id: I5a2aa93c74d2b68418b0a9d2e34d8199bb71e3ad
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-10 15:07:22 +02:00
Lars Knoll
e5a38facf6 Cache whether a property is a boolean
We have the space anyway, and this cuts away another couple
of percent during binding evaluation to avoid a call that
checks whether the type is bool.

Change-Id: I41c320f93bf0a33f0cb15962a154c59a2e47fd7a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-10 15:07:17 +02:00
Lars Knoll
bbfecdee1e Significantly improve performance of binding evaluation
Avoid any QVariant or type dependent code in the cpp files.
Instead, let the binding wrapper determine if the value
has changed and return true/false accordingly.

This required also some reworking of the guard mechanism
for notified properties, where the guard function wrapper
now calls first the binding evaluation function and then
passes the result to the guard.

Change-Id: I350d07a508ccc0c5db7054a0efa4f270b6a78ec3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:12 +02:00
Lars Knoll
be1ce6b269 Separate the error case when evaluating bindings
There's no point in returning a usually empty error when
evaluating bindings, adding overhead to the regular code
path.

Instead, the error can be set on the currently evaluating
binding if required. This streamlines the functor used to
wrap the binding and should thus expand to less code and
execute faster in the regular case.

To achieve this, expose a pointer to the currently evaluating
binding in the private API (as QtQml needs it to be able to
report errors).

The error case now requires one additional TLS lookup, but
we don't really care about performance in that case anyway.

Change-Id: Iecb450e765244930a41d813fcf8eb4013957a6a3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:07 +02:00
Lars Knoll
0d1208f0f0 Cleanup QPropertyBindingError
Remove location(). The method would always return an empty value. If you need the location,
the binding itself has it.

Remove setDescription() and require that the description gets passed
in the constructor. Never create a d pointer if type is NoError, so we
can quickly check for it inline.

Change-Id: I7eb8a94786281069d6ea2d82567c09aa50c52ef6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:02 +02:00
Shawn Rutledge
4e400369c0 Refactor pointer event hierarchy
Some goals that have hopefully been achieved are:
- make QPointerEvent and QEventPoint resemble their Qt Quick
  counterparts to such an extent that we can remove those wrappers
  and go back to delivering the original events in Qt Quick
- make QEventPoint much smaller than QTouchEvent::TouchPoint, with no pimpl
- remove most public setters
- reduce the usage of complex constructors that take many arguments
- don't repeat ourselves: move accessors and storage upwards
  rather than having redundant ones in subclasses
- standardize the set of accessors in QPointerEvent
- maintain source compatibility as much as possible: do not require
  modifying event-handling code in any QWidget subclass

To avoid public setters we now introduce a few QMutable* subclasses.
This is a bit like the Builder pattern except that it doesn't involve
constructing a separate disposable object: the main event type can be
cast to the mutable type at any time to enable modifications, iff the
code is linked with gui-private. Therefore event classes can have
less-"complete" constructors, because internal Qt code can use setters
the same way it could use the ones in QTouchEvent before; and the event
classes don't need many friends. Even some read-accessors can be kept
private unless we are sure we want to expose them.

Task-number: QTBUG-46266
Fixes: QTBUG-72173
Change-Id: I740e4e40165b7bc41223d38b200bbc2b403e07b6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-10 14:32:56 +02:00
Friedemann Kleint
773a6bffd7 Tests: Use QVERIFY instead of QCOMPARE for empty lists
Pick-to: 5.15
Change-Id: I4da02fa11583eca3844bf42efcdf818b8bbd6a94
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2020-07-10 14:30:58 +02:00
Friedemann Kleint
a83b2c64a9 Polish the settingseditor example
The example is meant to show an item delegate with a line edit with
QRegularExpression-based validation depending on type.
Unfortunately, this does not work since QSettings mostly
return QString types.

Fix it to a partially working state by
- Making the expressions match from beginning to end which
  was overlooked in the QRegExp->QRegularExpression change.
- Use QCheckBox, QSpinBox for bool/int since it is silly
  to have a user edit a bool value by typing 'true'/'false'.
- Move the expressions out to a separate struct to be
  able to do some guessing of the type when reading
  the QSettings, implement for bool and int.
- Use a fancy Unicode checkmark for displaying bools.
- Fix the garbled display of QByteArray with binary data
  by displaying them with hex characters and setting them
  read-only.

Change-Id: Iba22dfafc3b813b3fd3d2915ef5210d661049382
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-07-10 11:31:09 +00:00
Tor Arne Vestbø
9ac5273d03 Remove unused method QKeyMapper::clearMappings()
The plumbing from QKeyMapper to the platform specific key mappers
via QPA was never done, so this method is unused. The code path
in QKeyMapper that would trigger it would be changeKeyboard(),
but that's already handled in QCocoaKeyMapper, and wouldn't be
initiated from the cross platform code in any case.

Change-Id: Ibc0c419627fc0430d028945038c1f2fbafe42d4b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:06 +02:00
Tor Arne Vestbø
f08c15c3de macOS: Simplify dead key handling
Change-Id: Ie2e2c6e1b1daf08146fd42f3ce58194ee1918794
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:03 +02:00
Tor Arne Vestbø
3dedb5292d macOS: Simplify Ctrl+LeftMouse->RightMouse handling
Change-Id: I080bfaec273ea45809d72e513add16b7114c7bbb
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:00 +02:00
Tor Arne Vestbø
5db69cb5de macOS: Merge keySequenceToKeyEqivalent into call site
Change-Id: Iae33f627ad6abfc9bbba9b098417bd13caee00f8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:16:57 +02:00
Tor Arne Vestbø
7917f9b7f5 macOS: Add QCocoaKeyMapper::toCocoaModifiers
Change-Id: I489c64733275260bb041f8df5cc5ff4a571d4e9c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:16:54 +02:00
Andy Shaw
0ef46b41d8 Android: Enable configuring for a single abi architecture
Fixes: QTBUG-80938
Pick-to: 5.15
Change-Id: Id87202e6b2520b18c6b06b71675157f588a28bd6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-10 09:38:13 +00:00
Andy Shaw
c92528b6cc Mark gradlew with Unix eol endings as it is a script
Since this could end up being copied from a Windows machine to another
when it is part of a project using Android then we should make sure the
line endings are preserved to be on the safe side. This avoids a strange
problem when deploying due to gradle failing to run.

Change-Id: Ie170461a351c9279092b58d4e8353b81cc8561d3
Pick-to: 5.15 5.12
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-07-10 11:38:00 +02:00
Allan Sandfeld Jensen
acc3f19038 Fix one check for AVX2
We should check for the haswell set of features here as well, as we
do in the main switch.

Not that there are supposed to be any processors with AVX2 without the
full set though.

Pick-to: 5.15
Change-Id: Ifa648d605a50748cff21ae0a0c75ae47f620d9c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 11:10:05 +02:00
Andrei Golubev
d9c40cf90e Remove the setting of GrowsBackwards from QList
The flag is practically unused, there is no logic that relies on its
existence. From experience of prototyping prepend optimization (where
the flag actually makes sense), it is better to temporarily remove it:
QList is, in fact, unaware of how to correctly use it at the moment

Once GrowsBackwards-using code is implemented at the lower levels,
the usage of the flag will be reintroduced to QList along with the
changes that ensure correct behavior

Task-number: QTBUG-84320
Change-Id: I618adfcd69b15c76ddafd78cca5e9aa0073e4c91
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 11:49:05 +03:00
Dimitrios Apostolou
14a8fb2321 Rename local variables masking parameters
As found by LGTM.com.

Change-Id: I9a237899dc50009da5643c49c590f3b15bb817bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:37:11 +02:00
Dimitrios Apostolou
b800f74fe0 Rename local variable hiding parameter
As found by LGTM.com.

Change-Id: If3024bdaad06cafcd401b4ee04524ad03bd69a97
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:37:02 +02:00
Dimitrios Apostolou
1e546595e9 Remove unused imports
As found by LGTM.com.

Change-Id: I1704f10f9bab1b11ab22824aca0cfcdcb47fef2f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-10 02:36:54 +02:00
Dimitrios Apostolou
a5e6e0dd2e Rename local variable hiding global one with the same name
As found by LGTM.com.

Change-Id: Ic4c38c02529e7cc7eb7c79c3936b7d5f030fd84f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:36:47 +02:00
Dimitrios Apostolou
3736ebf7c8 Remove duplicate dict entry
As found by LGTM.com.

Change-Id: I9d41fec8a9f80fe9cb1cae960418032f84646a99
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-10 02:36:40 +02:00
Dimitrios Apostolou
89e3a426a8 Remove local variable masking a global one
As found by LGTM.com.

Change-Id: Ied926a9eace9044ec9abc859557cd28178e5defb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:36:33 +02:00
Dimitrios Apostolou
efdfdfa0fc Remove dead code
Found by LGTM.com.

Change-Id: I661e2287a6964b63d5b03c8913bc4b09f21ffdf1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-10 02:36:25 +02:00
Giuseppe D'Angelo
8a13aa0e02 QArrayDataPointer: use move and swap in move assignment
Not plain swap; QADP does not hold just memory but arbitrary
state (depending on T).

Change-Id: I3560577e4109607a51b2c72b67e22e38813977b3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:16:09 +02:00
Friedemann Kleint
6758f73bb7 Move glxconvenience into QtGui
OpenGL is not quite as dead as initially assumed.

Task-number: QTBUG-83255
Change-Id: I953040149812a5258caad5fe6bac0835e1982dd0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-10 00:47:56 +02:00
Allan Sandfeld Jensen
60d72b7ab6 CMake: Fix incorrect SIMD arch_haswell and avx profile conditions
Fix the conditions in qt_add_simd_part for arch_haswell and the
avx512 profiles to mimic what simd.prf does.

Add missing SIMD flags in QtCompilerOptimization for arch_haswell.

Compute the compile flags for the avx512 profiles from the
profile dependencies.

Remove the special case in Gui that hardcoded the compilation of
qdrawhelper_avx2.cpp to be conditional on avx2 being enabled
instead of arch_haswell. The Gui project already has another
qt_add_simd_part that is enabled if arch_haswell is enabled, which
will now work correctly due to the fixes in qt_add_simd_part.

Change-Id: I7a61a03b5565d4fa438f22b329e0d9dd7acd9273
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 23:02:39 +02:00
Ulf Hermann
f9e1674094 moc: For non-STORED QProperties, expect a pointer
This way we can return a nullptr for cases where the class does not want
to provide a property at all. For example outside of bindings when
reading the default value. The moc-generated code can check for such
nullptrs and handle them.

Change-Id: I7ff478cb254012147bb7aed3feb160e3e679cb6d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-09 22:34:46 +02:00
Sona Kurazyan
577558daf5 Fix QByteArray::count implementation for longer data
The issue has been introduced when refactoring QByteArray::count
implementation (see 631127126c).

Because the last argument of QByteArrayMatcher::indexIn() method
has a defult value, it has been compiling without issues, but was being
called with incorrect size parameter. Fixed it to pass the length of the
input data correctly.

Change-Id: Ic9c2f33733131ec17276aa889f2d7ea40ec79b01
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-09 18:38:33 +02:00
Giuseppe D'Angelo
c023b025ee Qt::Modifier: do some cleanups
Qt::UNICODE_ACCEL had no effect since at least Qt 4.0. We can drop
it in Qt 6. The whole Qt::Modifier enumeration is still widely
used, so we can't drop it yet, but we should aim at doing so in
Qt 7. Add a note.

[ChangeLog][QtCore][Qt::Modifier] The Qt::UNICODE_ACCEL enumerator
has been removed. It had no effect since Qt 4.0.
[ChangeLog][QtCore][Qt::Modifier] Usage of the enumerators in
the Qt::Modifier enumeration is discouraged. The enumeration
will likely get removed in the next major version of Qt.

Change-Id: If25f30d920878d32903b91a38044f5da042c7eab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-09 18:38:14 +02:00
Jarek Kobus
89ecbf0978 Use QList instead of QVector
Task-number: QTBUG-84469
Change-Id: Ia365c958e3b2d0c8210f5d693d907bb2012887c2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-09 16:10:11 +02:00
Alexandru Croitor
b1f8ca8032 CMake: Fix various issues with the Android build
Certain resources and compiled jar files have to be copied into the
non-prefix build dir location. They were previously only installed,
which doesn't do anything in a non-prefix build.

Change pro2cmake to generate code that places the compiled java
jars into QT_BUILD_DIR, so that non-prefix builds work.

Place the module dependencies xml files into lib folder in non-prefix
builds.

Don't special case the output and install location of the Android QPA
plugin.

Task-number: QTBUG-85399
Change-Id: I4ac9d3929ea8ecc95ec99a77e621ad2121b68832
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 11:56:31 +02:00
Alexandru Croitor
d5e8a5d9cb CMake: Fix missing qdevice.pri values and qt.conf info for Android
qdevice.pri should embed info about the Android SDK, NDK, host,
platform api level and ABI.

The machine tuple test should not be run for uikit and Android
platforms.

Sysroot should also not be prepended for uikit and Android
platforms, otherwise it breaks Qt module include paths.

Task-number: QTBUG-85399
Task-number: QTBUG-82581
Change-Id: Ic48c88f6ab15d75c2ebc323c8d7a3b7e5596f3c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 11:56:26 +02:00
Alexandru Croitor
db397d1113 CMake: Regenerate subdir test projects
And generate a few more test projects that were missing.

Change-Id: I5df51106549aa5ae09bc3c42360e14b143719547
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-07-09 09:38:39 +02:00
Alexandru Croitor
e9a328bc0e CMake: Regenerate tests with new qt_ prefixed APIs
Use pro2cmake with '--api-version 2' to force regenerate
projects to use the new prefixed qt_foo APIs.

Change-Id: I055c4837860319e93aaa6b09d646dda4fc2a4069
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 09:38:35 +02:00
Alexandru Croitor
5417f1e40c CMake: Regenerate tests
This is in preparation for regenerating them with the new qt_foo
prefixed APIs.

Change-Id: Iff34932d642b1c0186ee39f952adf3ad367fd602
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 09:38:31 +02:00
Alexandru Croitor
74cb331af3 CMake: Regenerate examples
Change-Id: I1c51b10af4e2b26f54740f257164c56a0e2a03ce
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-07-09 09:38:28 +02:00
Joerg Bornemann
d98a6d0463 CMake: Fix path to qt-cmake in configure summary
The path was wrong if CMAKE_STAGING_PREFIX was set.

Change-Id: Iec90c7a5edf0da80a0ac108fe3411c340c01e9a9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-09 08:55:38 +02:00
Joerg Bornemann
84dcbe4d5d CMake: Fix qt-cmake-standalone-test when CMAKE_STAGING_PREFIX is set
The qt-cmake-standalone-test script is kind of a "host tool" and
contained paths to CMAKE_INSTALL_PREFIX, which is wrong if
CMAKE_STAGING_PREFIX points to somewhere else.

Fixes: QTBUG-85336
Change-Id: I4828dc6868d55cfc60f3ad2199185230d5cc9028
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-09 08:55:32 +02:00