summaryrefslogtreecommitdiffstats
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* Add mkspec for INTEGRITY Qualcomm s820 MSM8996AUKimmo Ollila2017-12-012-0/+102
| | | | | | Change-Id: Ia3983594d9295ae858efe2289c296cfcc2fe1b78 Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* configure: reset *_LIBS when *_LIBS_{DEBUG|RELEASE} are specifiedOswald Buddenhagen2017-11-301-6/+9
| | | | | | | | | | | it could be somewhat surprising that specifying variant-specific libs would not clear the common libs, so do that. of course, the default for the common libs could theoretically contain common deps of the variant-specific libs, in which case clearing them would be surprising in turn - luckily, we have no such case. Change-Id: Ifca08b9e1949c6a0cefed6931ade4021927d7c90 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: make *_LIBS_{DEBUG|RELEASE} always workOswald Buddenhagen2017-11-301-4/+8
| | | | | | | ... and not only when the source explicitly specifies build variants. Change-Id: Iac6c8fda8f431d5fb50fada8338d1b660ab040d7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: fix over-quoting in library exportingOswald Buddenhagen2017-11-301-3/+4
| | | | | | | | | | | | unlike for the other fields, we forgot to eval() the values of the build-specific library values, leading to over-quoting of values which require any quoting at all. amends c0cc50520. Task-number: QTBUG-62521 Change-Id: I4dfce31040dd09248d3f9dd4294f7fb147c13bdd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: fix processing of *_LIBS_{DEBUG|RELEASE}= argsOswald Buddenhagen2017-11-301-2/+2
| | | | | | | | | | | | qtConfLibrary_inline() used to set $${1}.builds.$${b}.libs, while everything else assumed no such .libs suffix. fix the former. amends 9172143f52. Task-number: QTBUG-61431 Started-by: Konstantin Ritt <ritt.ks@gmail.com> Change-Id: I0bd81591c46266d81baa9c12315411183bbc7a63 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* unify windows mkspecs: update descriptionAlexander Shevchenko2017-11-294-10/+15
| | | | | | | | Common changes to mingw-w64, ICC on Windows and MSVC toolchains: - update toolchains description similar to 'gcc-base.conf'. Change-Id: Ie456c6cec86c0d1c0107ca84a0fa7855666df91e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Disable Xcode main thread checker by defaultTor Arne Vestbø2017-11-071-0/+1
| | | | | | | | | | | | | | | | | | | Xcode 9 introduced the main thread checker, which detects invalid use of AppKit, UIKit, and other APIs from background threads. https://developer.apple.com/documentation/code_diagnostics/main_thread_checker In our case these are accesses to e.g. [UIView layer] and [UIScreen scaleFactor] from the render thread of QtQuick, things we should look at, but that might not be easily solvable. In any case, these are not warnings the user can do anything about, so in lack of a per-library disable of the checker, we have to globally disable it for the whole Xcode project. Task-number: QTBUG-63822 Change-Id: Ibfcdf23891cf6bfbbc9b9b3349e4c256c273c7de Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Qmake: Introduce and use QMAKE_{SYSTEM,SHELL}_NULL_DEVICE variable, take 2Orgad Shaneh2017-10-134-32/+18
| | | | | | | | | | SYSTEM is used for system() calls, while SHELL is used in the target Makefiles. Task-number: QTBUG-62985 Change-Id: Ia75d3939c59c98699359421166433e8b4a6ee35e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add support for ICC in toolchain.prfTony Sarajärvi2017-09-291-2/+2
| | | | | | Task-number: QTBUG-62531 Change-Id: Ie15a349c830258058d48c9da18b52b343bdb943a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Do not define _HAS_EXCEPTIONS=0 in MSVC buildsJoerg Bornemann2017-09-272-2/+2
| | | | | | | | | | | | | | | | | This definition causes a build error if concrt.h is included. According to Microsoft [1], this macro is unsupported. It was added in f5908363 to silence compiler warnings that are generated when exceptions are turned off and certain STL headers are included. We specifically disable the warnings in question now. [1] https://blogs.msdn.microsoft.com/vcblog/2015/07/14/stl-fixes-in-vs-2015-part-2/ Task-number: QTBUG-63409 Change-Id: I567d5d46292fbd7898394e217bb0987fbcdca9de Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark Clang 5.0 as warning-freeThiago Macieira2017-09-181-2/+2
| | | | | Change-Id: I27b55fdf514247549455fffd14b17a4ae1d8ff2d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix conditions in some QMAKE_COMPILER_DEFINES assignmentsRobert Loehning2017-09-151-3/+3
| | | | | | | | | | We obviously should check the variable we're about to get the data from. Amends 1216f596bdb. Change-Id: Ibe87138b9c9aa99837b4fbf3769cd26ca1aaacb9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix quoting of mocinclude.opt for paths containing spacesJoerg Bornemann2017-09-141-1/+1
| | | | | | | | | | | If MOC_INCLUDEPATH exceeds a certain limit, its content is written into a file named mocinclude.opt, which is then passed to moc as a response file. That moc parameter was not properly quoted, and the moc call failed for paths containing spaces. Task-number: QTBUG-63197 Change-Id: Ib0542d80ce1bab239e0e6b6e24fadd11007b1846 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Android: Use unified headers if availableBogDan Vatra2017-09-071-2/+6
| | | | | | | Fix compile with ndkr16+ Change-Id: I52a52b787e88c8fd74f86d98dcd3c9d44fcf56a9 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Set the CROSS_COMPILE variable in Android mkspecsJoerg Bornemann2017-09-063-7/+8
| | | | | | | All cross-target makespecs should set this variable. Change-Id: I176fa79e639b09c4c1134b66635c66d6e351d805 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Add qmake feature and configure option to use ccacheTor Arne Vestbø2017-09-051-0/+19
| | | | | | | | | | | | Enabled via configure --ccache, or CONFIG += ccache in 3rd party projects. Ensures that we use the right sloppiness and other ccache options during compilation. Task-number: QTBUG-31034 Change-Id: I696b3d3f0398873a29b93d1bc2b4d4e06ef23dc9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove unused mkspecs variable QMAKE_LIBS_NISJoerg Bornemann2017-08-2810-10/+0
| | | | | Change-Id: I09a161fe4706c19eba4ff54cdb03a10edc34871a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove QMAKE_LIBS_CORE variableJoerg Bornemann2017-08-284-5/+0
| | | | | | | | Define the lib dependencies for corelib in corelib.pro, where they belong. Change-Id: I973d3b0c571782d869b27dea243e899db4dddc43 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* configure: Disable warnings in configure testsThiago Macieira2017-08-241-0/+3
| | | | | | | No need to log them. Change-Id: I3868166e5efc45538544fffd14d8c3cc0012ba12 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Use libc++ instead of libstdc++ when compiling with android-clang mkspecBogDan Vatra2017-08-235-39/+49
| | | | | | | | | | | | | | | clang+libc++ is the only supported way by Google nowadays. libstdc++ is too old and already fails to build some C++11 apps e.g. missing std::to_string(). android-g++ mkspec still uses libstdc++ and g++. Use -isystem to include system headers instead of QMAKE_INCDIR_POST (-I). Task-number: QTBUG-60455 Change-Id: Iba8b04594c2e5e2832e6cf480e4e52ff31ad4106 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Propagate all module defines to CMake config filesVolker Krause2017-08-151-2/+2
| | | | | | | | | | | So far this only covered the QT_xxx_LIB define, but not any other defines a module might export (such as QT_NO_QML_DEBUGGER which hasn't been ported to the new configure system yet). Change-Id: I8aae2354fed77a6f0e527ad8d63d25654bb067d0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qmake: don't limit command line length when not actually on windowsOswald Buddenhagen2017-08-151-2/+4
| | | | | | | | | | | | | QMAKE_LINK_OBJECT_MAX is actually a property of the host, not the target. this works around binutil's inability to use thin LTO objects in conjunction with an MRI script (https://sourceware.org/bugzilla/show_bug.cgi?id=21702). Task-number: QTBUG-61335 Change-Id: I90a1334b9c905c433b35546e8f3f3b5089d2c65b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* refuse to build examples inside the qt source tree stand-aloneOswald Buddenhagen2017-08-151-1/+7
| | | | | | | | | | | doing so is somewhat likely to cause follow-up issues, as it turns the source tree into a build tree as a side effect. note that this change does not affect building examples inside an install tree, even if doing that is still ugly. Change-Id: I386bf2ab959269f55553c70b7551dd9afec2bcba Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix excessive execution of code meant for examples onlyOswald Buddenhagen2017-08-151-5/+6
| | | | | | | | qt_example_installs.prf is loaded by every sub-project inside the qt tree, as qt_build_config adds it. Change-Id: Ice7e81b280b6964ed5cc1b9f1501bf74df737d7e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* employ return() inside qt_example_installs.prf gainfullyOswald Buddenhagen2017-08-151-84/+85
| | | | | | | reduces the indentation level. Change-Id: I7851ffc5e9ecaaa3ae375d14fd245ea3747f61b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* configure: fix detection of icu in static buildOswald Buddenhagen2017-08-151-2/+2
| | | | | | | | | don't complain about library inline sources which have 'builds' but no 'libs'. Task-number: QTBUG-62150 Change-Id: Ib215d438fc02ebdafde95f31cd48088b1bafc663 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* configure: simplify construction of QMAKE_CONFIG_CACHEOswald Buddenhagen2017-08-151-4/+1
| | | | | | | | there doesn't appear to be a reason for the former complexity. QMAKE_CONFIG_LOG was already assigned the simple way. Change-Id: I6b7e3b5b97c7647237841fa5e16c4959079edc16 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* make compiler invocation error messages mention host/targetOswald Buddenhagen2017-08-111-8/+14
| | | | | | | | | | | | it's unclear where to look for the error when the message talks about 'g++' when '${CROSS_COMPILE}g++' would have been expected. help it by saying whether it was supposed to be the host or target compiler. this also centralizes the error emissions in a function. Change-Id: I454c6ff7c0e7dd945dcee0de01e2818caeeb7409 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Enable custom shared memory schemes on INTEGRITYTero Alamäki2017-08-101-1/+1
| | | | | | | | | | | Replaced dependency to libdl.a with libshm_client.a. Defined symbols 'shm_area_password' and 'shm_area_name' internally. The build for INTEGRITY is static only so libdl.a is not needed. Change-Id: I7e34528835132d79ea582a30cf9ff61cdda198da Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* configure: Add a feature to write tests in the .json fileThiago Macieira2017-08-021-5/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're adding a lot of unnecessary files that end up later as cargo-cult, for at most a handful of lines. So instead move the testcases directly into the .json file. The following sources were not inlined, because multiple tests share them, and the inlining infra does not support that (yet): - avx512 - openssl - gnu-libiconv/sun-libiconv (there is also a command line option to select the exact variant, which makes it hard/impossible to properly coalesce the library sources) The following sources were not inlined because of "complications": - verifyspec contains a lengthy function in the project file - stl contains lots of code in the source file - xlocalescanprint includes a private header from the source tree via a relative path, which we can't do, as the test's physical location is variable. - corewlan uses objective c++, which the inline system doesn't support reduce_relocs and reduce_exports now create libraries with main(), which is weird enough, but doesn't hurt. Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: Ic3a088f9f08a4fd7ae91fffd14ce8a262021cca0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* configure: factor out $$qtConfScalarOrList()Oswald Buddenhagen2017-08-021-10/+15
| | | | | | | we'll need it in more places. Change-Id: Ia7e3d9ea4a27cc01294bde4cafe6721eb9f59343 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* android-clang: Use -Oz instead of -Os to produce smaller binariesSérgio Martins2017-07-311-2/+8
| | | | | | | | | | | For clang -Os is very similar to -O2 and doesn't really reduce size much. -Oz is usually what you want to use with clang for code reduction. Now clang binaries are only 9% bigger than gcc's, instead of 22%. Change-Id: Ib0ba560be26db68aeb21c13df4b151b7fbd81431 Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Windows: Automatically set metadata for all Qt appsKai Koehne2017-07-312-3/+4
| | | | | | | | | Move the logic to set default values for VERSION, QMAKE_TARGET_DESCRIPTION to qt_app.prf. This way, a lot more executables get sane defaults. Change-Id: I8394418c118a8877cec792eddc8894397c0fbf2d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Windows: Simplify generic tool descriptionKai Koehne2017-07-311-2/+2
| | | | | | | | | | | | Make the tool description even simpler so that e.g. moc shows up as "Qt Moc". The 'description' is shown in various places as the mere title, so it shouldn't be too verbose. This augments change ad68bf51e7. Task-number: QTBUG-61970 Change-Id: I4b30b95a10d597a9a8a2c388c2381ea38a340be6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add executable name to description of Qt tools (Windows)Kai Koehne2017-07-191-1/+1
| | | | | | | | | | | | | | | Change f046ed395a5d2c383 set the default values of VERSION and QMAKE_TARGET_DESCRIPTION for Qt tools to generic ones. The version and description is shown in the properties of the executable, but also used for crash reports. For the latter it wasn't clear anymore which tool actually crashed. The patch therefore adds the executable name to the generic description. Tools can still overwrite the description on their own. Task-number: QTBUG-61970 Change-Id: I8366db22f88f0d6575e7f482f030b3c4f05af6c5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix CONFIG+=silent for MSVC non-inference rulesJoerg Bornemann2017-07-141-2/+7
| | | | | | | | | | | | | | | silent.prf modifies the compiler commands by prefixing them with a silencing echo command. For MSVC, the used $< syntax is only valid in inference rules. However, the PCH rule is not an inference rule and breaks when silent.prf is used. Remove the echo command for MSVC. The compiler already outputs the currently compiled file. There's no need to do it twice. Task-number: QTBUG-61688 Change-Id: I7e2c1211e471c9c149c16cac8e87406e88ee2d97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Only try to resolve library paths via linker for Drawin clangTor Arne Vestbø2017-07-081-2/+2
| | | | | | Task-number: QTBUG-61735 Change-Id: Ia8e777928aa0cff44f092968eac14d32501a5d73 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix detection of QMAKE_DEFAULT_LIBDIRS with Clang under LinuxGiuseppe D'Angelo2017-07-071-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | With 4183475080d334d7d17d02e6ad4eb53c01205c54, Qt fails to build if qmake is unable to detect the compiler's default include and library search paths. Clang on non-Darwin systems was missing working code for the detection. Unlike GCC, Clang on its own does not print the library search paths when called with the -v option. On Darwin, the -Wl,-v option will reach ld64, which will print those paths. However, neither GNU ld nor gold will print anything useful with just -v. GNU ld has a --verbose option that does print some search paths, but those are not the ones used when ld is invoked (via collect2) by GCC or Clang, so it can't be used. To make Clang print its library search paths one can use -print-search-dirs, which however doesn't print include search paths. So amend the existing code in order to make a second call to clang on non-Darwin systems. This second call is used for library path detection, and fixes the build on non-Darwin (tested on Linux). Change-Id: Ic858f908ee1a2e0eb307abb074daee0ded38abd5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qmake: Do not default to -pipe on WindowsOrgad Shaneh2017-07-071-1/+1
| | | | | | | | | | | | | It is considered slightly faster than the default mode[1], but on Windows it causes trouble when aborting the build, it leaves behind zero-sized object files which cause link error. See discussion in the bug-make mailing list[2]. [1] https://stackoverflow.com/a/1512947/764870 [2] http://lists.gnu.org/archive/html/bug-make/2017-06/msg00066.html Change-Id: I7aa0b328a8c743fdfe9b0aece02b329066515076 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Disable the -Wstringop-overflow warning from GCC 7Thiago Macieira2017-07-031-0/+2
| | | | | | | | | | | It prints the warning even if we surround the affected code with QT_WARNING_DISABLE_GCC("-Wstringop-overflow") (see e4eaa629439fe1ba1e), so we have no alternative other than to disable the warning completely. Change-Id: Ia3e896da908f42939148fffd14c488c4006040e6 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add _UNICODE define to MSVC and MinGW mkspecsJoerg Bornemann2017-07-032-2/+2
| | | | | | | | | | | | | System headers like tchar.h need the _UNICODE define, not UNICODE. While qplatformdefs.h already provides _UNICODE when UNICODE is defined, users might want to include tchar.h without Qt includes. This is consistent with Visual Studio's default defines. Task-number: QTBUG-61411 Change-Id: I2f604368080270d840f0dbb2cf273805d2ba5239 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make Qt's VersionInformation resource strings consistentJoerg Bornemann2017-07-031-2/+2
| | | | | | | | | | The strings in Windows VersionInformation resources should be capitalized by convention, and the entries are usually not terminated by a dot. However, "Ltd." is an abbreviation and should be dot-terminated. Change-Id: Ibea3443ac38846e29a3e77ab3e8d5d77b9370272 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Set VERSION for Qt toolsJoerg Bornemann2017-07-031-0/+3
| | | | | | | | | This creates a VersionInfo resource on Windows for Qt's tool executables similar to what Qt's DLLs contain. Task-number: QTBUG-55755 Change-Id: I9e5d7bedaec9d14f29a9eeeb6697b07241f860d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* winrt: remove legacy checksMaurice Kalinowski2017-07-031-3/+2
| | | | | | | | Any version prior to 2015 is not supported anymore. Change-Id: I9ccc87fc506521b560fda1b4c88f9c3aebd7a485 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* winrt: Update capability managementMaurice Kalinowski2017-07-032-3/+30
| | | | | | | | | | | | Introduce uap3 namespace which is used for newly introduced capabilities. In addition, the autodetection of namespaces for capabilities within the uap namespace is disabled in Visual Studio lately. Hence, the output needs to be more verbose including the namespace for a capability. Task-number: QTBUG-60899 Change-Id: Ia1ccf825d4c257d2661e34c195c45fd37e0b6413 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.9.1' into 5.9" into ↵Liang Qi2017-07-021-4/+1
|\ | | | | | | refs/staging/5.9
| * Merge remote-tracking branch 'origin/5.9.1' into 5.9Liang Qi2017-07-021-4/+1
| |\ | | | | | | | | | Change-Id: Ic02646cbab8fd627bc73dac0c52d515d4084bbb0
| | * Revert "don't overwrite pre-existing INSTALL for target"Christian Strømme2017-06-271-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c0e94dd0933c549f35d05318cdcd97572c61fabf, as it introduced a regression for applications that sets an installation target (on Android), which a lot of our examples do. The installation target for Android applications/libraries needs to be within in the application bundle's directory tree, or it won't work. Task-number: QTBUG-61635 Change-Id: I8c919ef3888d7679b0f9659796f5e590bc1faa57 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | fix QMAKE_DEFAULT_INCDIRS detection with Xcode targeting uikit platformsOswald Buddenhagen2017-07-021-1/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | uikit/sdk.prf replaces QMAKE_MAC_SDK_PATH with a make expansion of that variable, which of course does not work when we use the contents directly. amends 6d5489f5d. Task-number: QTBUG-61690 Change-Id: Id77dff8ee7d737dd35f74cc7d39faaa50b4b1ab9 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | Add query of default include/library paths for QNXJames McDonnell2017-06-291-26/+55
| | | | | | | | | | Change-Id: Iafc5a573a2ddb277d2a786cb6b48521985defe44 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>