summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* xcb: remove multi-connection code pathGatis Paeglis2020-06-215-64/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was introduced in 2011 as an experimental feature and have been untested/unmaintained ever since. It's time to remove it for the following reasons: - It has never been documented in QGuiApplication under "Supported Command Line Options". The intended command line was: ./app -platform xcb:address:display - I am not aware of other toolkits that would provide this functionality - connecting to several X displays simultaneously. - XCB plugin respects the "-display" command line and DISPLAY envvar which should be sufficient. So the "workaround" to get your window on 2 X displays is: ./app -display :0 ./app -display :1 - There are no JIRA bugs where users would complain that this feature does not work. AFAICT it has not worked for years. Almost all functions care only about the "default" connection, and don't attempt to support multi-connection. - This will stop confusing people who want to contribute to the XCB plugin. [ChangeLog][Platform Specific Changes][X11] Connecting to multiple X servers simultaneously within the same application is no longer supported. Task-number: QTBUG-52408 Change-Id: I61ce23480702bb89b02c6028fa0986fe63481978 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove deprecated QStyleOption::init()Christian Ehrlicher2020-06-2123-50/+43
| | | | | | | | Even it was not marked as deprecated the replacement function initFrom() is available since Qt4 times (and init() is deprecated since then) Change-Id: I09a4ebbf66b01fbe7aec67691dc68d2e42d1cd78 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: Fix android accessibility not being set activeVikke Matikainen2020-06-213-1/+17
| | | | | | | | | | | | | | Android platform event of activating accessibility might be received, before the platform plugin is initialized, thus disregarding the activation step. This change saves the activation event state and defers setting it in platform integration. Fixes: QTBUG-77320 Pick-to: 5.15 5.12 Change-Id: I06aab76159d1de0e72c0c535dbe80c2858f8e79b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Introduce Github Actions workflow for Cmake Ninja buildDimitrios Apostolou2020-06-201-0/+110
| | | | | | | | | | | | | | | | | | | Has minimal configuration in order to achieve fastest build times. CCache is on, and PCH is off as it significantly reduces the Ccache hit ratio. This Github Workflow has been measured to take around + 30min without any Ccache hits and 8min for a rebuild, on Linux + 20min without any Ccache hits and 4min for a rebuild, on macOS + 1h without any Ccache hits and 20min for a rebuild, on Windows The goal is to use such Cloud building and testing systems as "smoke runs", providing quick feedback, much sooner than the canonical approval from Coin. Additionally having many independent systems helps verify "flakiness" issues. Another big advantage of such systems is their hackability, allowing someone to tweak the build parameters by just editing a couple of YAML lines. Change-Id: I7eca22f513516b9e61f333fb1fe89ab11ed2d1d1 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add config file for enabling LGTM analysisDimitrios Apostolou2020-06-201-0/+23
| | | | | | | | | | | lgtm.com is already picking up qtbase's mirror repo on github, trying to analyze it. Because it lacks build instructions, lgtm.com fails to analyze the C++ code, and only presents flaws in the little python and javascript code that is in the repo. With the file in this commit, it should be able to analyze the C++ code too. Change-Id: If558d26800e76c1b8590ed1aaf28adb6c0d6e188 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move implementation of QVector/List back to qlist.hLars Knoll2020-06-2040-1546/+1506
| | | | | | | | | | | | | And name the main class QList. That's also the one we document. This gives less porting pain for our users, and a lot less churn in our API, as we use QList in Qt 5 in 95% of our API. In addition, it gives more consistent naming with QStringList and QByteArrayList and disambiguates QList vs QVector(2|3|4)D. Fixes: QTBUG-84468 Change-Id: I3cba9d1d3179969d8bf9320b31be2230d021d1a9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Only add file url if it references a local fileMichael Brüning2020-06-201-1/+2
| | | | | | | | | | | | Remote URLs were converted to local file urls and converted to relative paths, which led to bugs when copying URLs from e.g. the web sites and pasting them into the command line. Original patch by Allan Sandfeld Jensen. Task-number: QTBUG-80243 Change-Id: I2cd41635b34b2ead424441719795705ef19d37f2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove deprecated roles BackgroundColorRole and TextColorRoleChristian Ehrlicher2020-06-203-8/+0
| | | | | Change-Id: I2729102d1efa9f3809ec22c29517961800e7dc6d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QtSql: remove unused includesChristian Ehrlicher2020-06-202-5/+0
| | | | | Change-Id: I6d47daa8fe17bf4be3b100f1a04d63dee4851daa Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QRect(F): remove deprecated functionsChristian Ehrlicher2020-06-202-38/+0
| | | | | | | They were deprecated since Qt5.0 so it's time to go away. Change-Id: Ib0192f9048ff15c9d47fb1a23046ccfe0ee7d807 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove deprecated QStyleOptionFooVx typedefsChristian Ehrlicher2020-06-202-122/+0
| | | | | | | They were not used the whole Qt5 lifetime. Change-Id: I1452b90d63bbeed3cc9131b04ed5263b38ad89b3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QSortFilterProxyModel: remove deprecated functionsChristian Ehrlicher2020-06-202-29/+0
| | | | | Change-Id: I1775fafc6cca88c0c65032a1fd126dc3b42975c9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QTreeWidget: remove deprecated function items()Christian Ehrlicher2020-06-202-13/+0
| | | | | | | | | It does not return anything and was already deprecated in Qt4.8 (and already returned an empty QList back then) Change-Id: I3a2f1b79081d3289d13ba9fdee346aa730d16114 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move QTextCodec support out of QtCoreKarsten Heimrich2020-06-20125-63825/+33
| | | | | | | | | | * Assume UTF-8 on all Unix like systems * Export some functions to be able to compile QTextCodec once moved to Qt5Compat. Task-number: QTBUG-75665 Change-Id: I52ec47a848bc0ba72e9c7689668b1bcc5d736c29 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* wasm: fix crash when getting error like 404Lorn Potter2020-06-201-1/+0
| | | | | | Pick-to: 5.15 Change-Id: Ia9b81aaa8b1e9ea6ab20b8c6ff6f197e95d46d7d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Port Q_STATIC_ASSERT(_X) to static_assertGiuseppe D'Angelo2020-06-19126-493/+497
| | | | | | | | | | | | | | | | | There is no reason for keep using our macro now that we have C++17. The macro itself is left in for the moment being, as well as its detection logic, because it's needed for C code (not everything supports C11 yet). A few more cleanups will arrive in the next few patches. Note that this is a mere search/replace; some places were using double braces to work around the presence of commas in a macro, no attempt has been done to fix those. tst_qglobal had just some minor changes to keep testing the macro. Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Don't truncate parameters passed to QStringView::{first/last/from/slice}Sona Kurazyan2020-06-191-4/+4
| | | | | | | | QStringView doesn't need to convert qsizetype parameters to int. Change-Id: Iba8b5259ab3ed7a24a57bb6748446fd3e45bb182 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fuzzing: Test svg imagesRobert Loehning2020-06-191-0/+3
| | | | | | Pick-to: 5.15 Change-Id: I1467d07eaaa1233417cd3a18fd65ec3322181984 Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* QProcess/Win: Avoid reentering the code in _q_processDied()Alex Trotsenko2020-06-191-1/+1
| | | | | | | | | | | | | In case drainOutputPipes() makes a recursion, setting 'dying' to true should protect the code from reentering. But, the next call to QProcessPrivate::cleanup() resets this variable, which allows a secondary pass. So, we should postpone setting 'dying' to false until a new process session is started. Fixes: QTBUG-33731 Change-Id: I269ad3b8defa32aa714ea13f8803a07259f475dc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Provide the minimum darwin deployment target needed by QtAlexandru Croitor2020-06-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful information for people that want to use Qt in their project with CMake. Unfortunately there is no good way to actually set CMAKE_OSX_DEPLOYMENT_TARGET automatically with the Qt provided value, because it needs to be set before the first project() call in a CMake project. This means it can be set either on the command line, or manually by the application developer in CMakeLists.txt before the first project() call or via a CMake toolchain. In Qt 6 we provide a CMake toolchain file with the deployment target already set, so if the application developer uses the Qt generated toolchain, they will get the value automatically. In Qt 5 the value can only be read for informational purposes only, from the QT_DARWIN_MIN_DEPLOYMENT_TARGET property on the Qt5::Core target. The same property is set in Qt 6 for compatibility resons. Task-number: QTBUG-76167 Task-number: QTCREATORBUG-22466 Pick-to: 5.15 Change-Id: Id61d70dc9a1b7a0e7cdb90b1e679171ea178126b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMake: Do not file(GENERATE) illegal genexes in .pri file generationJoerg Bornemann2020-06-191-0/+5
| | | | | | | | | | | | | | | | | We must filter out expressions of the form $<TARGET_PROPERTY:name>, because 1. They cannot be used in file(GENERATE) content. 2. They refer to the consuming target we have no access to here. The CMake error Error evaluating generator expression: $<TARGET_PROPERTY:QT_PLUGIN_CLASS_NAME> was triggered when building the UiPlugin module of qttools. Change-Id: Idf639be50120b94d68a70965604e6f1ef72edc9b Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix note alignmentAndreas Schwab2020-06-191-1/+1
| | | | | | | | | It is architecture defined whether .align means .palign or .balign. Use .balign to make that explicit. Change-Id: I8c7e3760b37edfb207b7088319a338a1f583255b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix CMake documentation snippet for QtNetworkKai Koehne2020-06-192-4/+4
| | | | | | | | The addition of CMakeLists.txt in other directories made the reference ambiguous. Also fix the Qt version. Change-Id: I679d86a302ae6c41b84ded66e3f21c5320e4b325 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Don't return a touchscreen from QPointingDevice::primaryPointingDevice()Shawn Rutledge2020-06-192-15/+11
| | | | | | | | | | | This was causing some bogus failures in Qt Quick autotests. Existing APIs like QQuickWindow::mouseGrabberItem() are not really compatible with the idea of a mouse-less system; but perhaps we can revisit this later. Task-number: QTBUG-85114 Change-Id: Id1c2e5894e5cf13a79998aaea28d5f42fad920cf Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use | to OR some related flagsGiuseppe D'Angelo2020-06-191-1/+1
| | | | | | | | | | | And not +. Guess what, this was "accidentally" working around a number of bugs, most importantly QTBUG-75172 (which is caused by QTBUG-74639 and probably others). Change-Id: If13810d9408f2be7b87f0d259737bff8cacc6f7b Pick-to: 5.15 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: David Faure <david.faure@kdab.com>
* wasm: fix network reply timeout and error handlingLorn Potter2020-06-191-12/+21
| | | | | | | | Fixes: QTBUG-83728 Change-Id: Ib8184a497a028949eea20e9d189d79da51ccc290 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit b2e998d4678b82f823d24f3c97d78dec034f4e71) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* xcb: fix seatId to be master-keyboard-id << 16 | master-pointer-idShawn Rutledge2020-06-181-1/+1
| | | | | | | | | | | | Amends 6589f2ed0cf78c9b8a5bdffcdc458dc40a974c60 to match the comment. If the master device we found is a keyboard, then its own ID is the keyboard ID, and the attachment is a pointer; but if the master device we found is a pointer, then its attachment is the master keyboard. In practice, this gives all devices the same seatId on normal single-user sessions. Change-Id: Ibe7d7cdee7b3fe642efacd0349c109271059cb36 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* CMake: Improve automatic compiler embedding into the Qt toolchainAlexandru Croitor2020-06-181-4/+42
| | | | | | | | | | | | | | | | | Embedding the initial CMAKE_CXX_COMPILER into qt.toolchain.cmake breaks Boot2Qt builds, because the CXX environment variable is not used anymore when building qtsvg or other projects. Disable automatic embedding when cross-compiling, while keeping it enabled for non-cross-compiling cases (to keep Windows and and ICC configurations working). Allow opting in or out of the embedding in case if the default is wrong, via QT_EMBED_TOOLCHAIN_COMPILER. Task-number: QTBUG-85067 Change-Id: I1d8f9f580bc379b77c34eefb5728bb49f93cc81a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add QPointingDevice argument to every QWSI input event handler functionShawn Rutledge2020-06-187-116/+243
| | | | | | | | | | | | | | | | | | | | | | We want every QInputEvent to carry a valid device pointer. It may be some time until all QPA plugins are sending it, but it's necessary to provide the functions for them to start doing that. We now try to maintain the same order of arguments to all the functions. handleTouchEvent(window, timestamp, device, the rest) was already there (except "device" has changed type now), and is used in a lot of platform plugins; so it seems easiest to let that set the precedent, and modify the rest to match. We do that by adding new functions; we can deprecate the older functions after it becomes clear that the new ones work well. However the handleGestureEvent functions have only ever been used in the cocoa plugin, so it's easy to change their argument order right now. Modify tst_qwindow::tabletEvents() to test new tablet event API. Task-number: QTBUG-46412 Change-Id: I1828b61183cf51f3a08774936156c6a91cfc9a12 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Document QPromise APIAndrei Golubev2020-06-185-1/+460
| | | | | | | | | Documented QPromise. Added snippets under auto tests to ensure they are compiled and run in CI. Task-number: QTBUG-81586 Change-Id: I20084e38f9d2f6fc8540f95ee03ec3d2827177e8 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Add support for QNotifiedProperty to the mocSimon Hausmann2020-06-184-24/+52
| | | | | | | | | | | Change the meaning of Q_PRIVATE_QPROPERTY to imply that the property is implemented using a QNotifiedProperty. That requires passing the owner object instance to the value and binding setters. Similarly, detect QNotifiedProperty members like QProperty. Change-Id: If49bbb04c8ccd4a661973888c50d2d556c25034f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix build without features.highdpiscalingTasuku Suzuki2020-06-182-0/+24
| | | | | | Change-Id: I9fee7303d53be228546accbcdf29a63b52e3f625 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Fix the vertical alignment of images in a text documentDominik Holland2020-06-181-3/+16
| | | | | | | | | | | Try to align with the HTML standard as much as possible. AlignBottom is now really the bottom of the line (not the text). AlignMiddle is between AlignTop and AlignBottom. Change-Id: Ia067b96209c2ab0becbff99cf15bb8ab193ee2c6 Fixes: QTBUG-84981 Pick-to: 5.15 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix QString{Encoder|Decoder} documentationKarsten Heimrich2020-06-182-11/+13
| | | | | | Change-Id: I8e29846db77581953d90c818060950744cb9f521 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Android: Pass a null Bundle when calling QtActivityDelegate.onCreateAndy Shaw2020-06-181-2/+5
| | | | | | | | | | The onCreate function expects a Bundle variable to be passed in so it needs to get a null Bundle in this aspect to prevent it from crashing due to the lack of parameters. Change-Id: I8cc4b62d9e8db170b957f7574360033e91ca3493 Pick-to: 5.15 5.12 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: warn about too long build paths on WindowsAssam Boudjelthia2020-06-181-0/+29
| | | | | | | | | | | If Gradle build fails on Windows, check for java files that exceed the max length of 260 that Gradle can handle, then warn about the length issue. Pick-to: 5.15 Task-number: QTBUG-83875 Change-Id: Ia7462bc816b3efa4ba9fdd0f179fdc4c06e23248 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QOGLVAO::Binder: unexport a value classGiuseppe D'Angelo2020-06-181-1/+1
| | | | | Change-Id: Idd0261a30599d0eaeb6faffd0ff5615b5c45b670 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* CMake: Query public target defines when generating module .pri filesAlexandru Croitor2020-06-181-5/+6
| | | | | | | | | | | | | | | Assuage the fears in the previous commit, by actually querying and using the public defines set on a target, rather than hardcoding one single QT_FOO_LIB define + the extra namespace define. This should future-proof .pri file generation for qmake mixing. Amends 3452b08df6a3802c96b06651f9a530d55cbe7477 Task-number: QTBUG-84781 Task-number: QTBUG-84881 Change-Id: Ide68ecf3f89be6d5462cfe43706c27f9cb53394f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix namespace builds for qmake mixingAlexandru Croitor2020-06-181-1/+6
| | | | | | | | | | | | | | | | | While we recorded the namespace define in the CMake generated Targets file, we also have to record it in qt_lib_core.pri, so that qmake knows to use the define when building other modules / apps. It does scare me what other MODULE_DEFINES we might be missing, and that we should perhaps put all public modules defines into the generated module .pri files. Amends 3452b08df6a3802c96b06651f9a530d55cbe7477 Task-number: QTBUG-84781 Task-number: QTBUG-84881 Change-Id: I3175aa9991a06a4541eb0dd153ba2e6e58c019ce Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add a way to disable syntethesized bold and italic supportKyu Man Lim2020-06-182-4/+4
| | | | | | | | | | | | Using the environment variables QT_NO_SYNTHESIZED_BOLD and QT_NO_SYNTHESIZED_ITALIC it is now possible to disable the support for synthesized bold and italic, which is used when the font doesn't support those variants. Change-Id: Ic1a6984858e1260f252662689705553073859df4 Task-number: QTBUG-83124 Pick-to: 5.15 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove unused functionality from QTypeInfoLars Knoll2020-06-183-34/+1
| | | | | Change-Id: I10fe4cde7a18047599e656cc3bb67b0dfe18a986 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move UNIX services into QtGuiFriedemann Kleint2020-06-1836-84/+44
| | | | | | Task-number: QTBUG-83255 Change-Id: I95cd25c6e18ffb46955acc76d6cab551d1c8f5ae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QtGui: Fix duplication of logging category lcQpaFontsFriedemann Kleint2020-06-186-8/+4
| | | | | | | | | Move it to qplatformfontdatabase.h. Amends 6be9830d865be32f224e15d13ddefd9c7e176553. Task-number: QTBUG-83255 Change-Id: I0a3807dc49128c8ddd1dfe7d725528c1a852950b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QMetaMethod: implement returnType via returnMetaTypeFabian Kosmale2020-06-181-3/+1
| | | | | Change-Id: I6c77331c3bfe83b00e4bbdf960216df696aadabd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Android: Only emit the signals once when doing multiple file selectionAndy Shaw2020-06-181-2/+2
| | | | | | Change-Id: Ie57908f5e882ef4f85f4199ecb06c09ae5d8ae2a Pick-to: 5.15 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Undef Q_DECL_ENUMERATOR_DEPRECATED when having no deprecation warningsAndy Shaw2020-06-181-0/+2
| | | | | | | | | | | Since Q_DECL_ENUMERATOR_DEPRECATED can be explicitly set to something other than QT_DEPRECATED, then it needs to be explicitly undefined when QT_NO_DEPRECATED_WARNINGS is used to prevent it from showing a warning. Pick-to: 5.15 Change-Id: Ibe73ff5e7b5aa5eff93d0c4c0a38a33855a9a330 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QNAM: Fix my silly leftover mistakeMårten Nordheim2020-06-181-1/+0
| | | | | | | | | | | I removed the line locally, and then added it back for testing and forgot to remove it again. Amends a0bfa4e1f8e223927cbb285bb17d1a00a5c2d4b6. Task-number: QTBUG-84907 Change-Id: I7d6d0237742f4c3fc3ca0a2532d776325f396aab Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* CMake: Use intelcet flags for bootstrap and qmakeAlexandru Croitor2020-06-183-0/+21
| | | | | | | | | This should fix build failures on Ubuntu 20.04. Amends fa98adbd04de9d44ce921436b92589a41f285dcd Change-Id: Iff399faff0cf06f5b88d756b1f632b8798069578 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Don't use a lib prefix for MinGW prl filesAlexandru Croitor2020-06-181-1/+7
| | | | | | | This is to be consistent with qmake. Change-Id: I17b8a3e4649d035d1d871e4f124952cded7f6664 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Improve .prl dependency trackingAlexandru Croitor2020-06-181-3/+20
| | | | | | | | | | | | | | | | | | | | | | Previously .prl files were created via add_custom_command with a POST_BUILD command. This means they were only created after linking the libraries, and that whenever a relinking happened, dependees had to rebuild many parts of their target. Ideally we would use generator expressions in the OUTPUT argument, but versions up-to CMake 3.18 don't support doing that. A workaround is to create and depend on a .prl file name without generator expressions, and as a side effect also create a .prl file that does use generator expressions, but don't specify it as an OUTPUT. This seems to work well, and improves the dependency tracking issue, at the cost of one more file copy per .prl file whenever it changes. Change-Id: I7dd99777fec5a08552503bdbafb6116f93ebe66b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>