summaryrefslogtreecommitdiffstats
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
* qtpaths: Expose new PublicShareLocation, TemplatesLocationKai Köhne2022-01-141-0/+2
| | | | | | | | | | | | | These were added to QStandardPaths in commit 68c4669ce49aad21beff0e8ef0122a86d53b12e2 [ChangeLog][QtCore] PublicShareLocation, TemplatesLocation got added as known locations to QStandardPaths. Task-number: QTBUG-86106 Task-number: QTBUG-78092 Change-Id: I453b6a07dd7775f81f81a1b18fa95f5c1230cb1e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* uic/Python: Import base class for flag valuesFriedemann Kleint2022-01-132-6/+22
| | | | | | | | | | | | | | Extend the logic extracting enum base classes to flags to handle things like QAbstractItemView::EditTriggers. Exclude the Qt namespace. Amends de15836dbf5007092c19bc9ab15ca3d1a36901ad. Fixes: PYSIDE-1773 Task-number: PYSIDE-1404 Pick-to: 6.2 6.2.3 6.3 Change-Id: Ib0cd0836a91f330e5bc3307690062a965abec7eb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Update copyright year to 2022Kai Köhne2022-01-042-2/+2
| | | | | | | Pick-to: 5.15 6.2 6.3 Change-Id: If6f1d6f9f82a601f8e2b6d36650d6e737518aa60 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Check if QML plugin has the embedded QML files before copying to the Android ↵Alexey Edelev2021-12-211-16/+22
| | | | | | | | | | | | | | bundle We can detect if QML module has the embedded into the plugin QML files using the 'prefer' record from qmldir files. No need to duplicate QML files inside the android_rcc_bundle if 'prefer' record starts with ':/'. Pick-to: 6.3 Fixes: QTBUG-95984 Change-Id: Iee4f2248e3c0239c4f95a5db6e8fb3f16be636c5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Copy only files that belongs to QML moduleAlexey Edelev2021-12-201-20/+51
| | | | | | | | | | | Instead of copying all files that the QML module directory contains, this approach only copies files that belong to the QML module according to the qmlimportscanner output. Pick-to: 6.3 Fixes: QTBUG-97834 Change-Id: I881a6fba28ca24be4f33de8693b41b6dfefe8d6b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* macdeployqt: don’t err on unexpected otool outputMorten Johan Sørvig2021-12-151-2/+2
| | | | | | | | | | | | | | | | | Binaries with multiple slices (e.g. arm64, x86_64) will have an extra line for the slice, like: “/path/to/QtGui.framework/QtGui (architecture arm64)” The parsing code will skip this line since it does not match the regexp. In other words the parsing works by looking for lines which matches, and finding lines which don’t match is not an error condition. Pick-to: 6.3 Task-number: QTBUG-98466 Change-Id: I0afebdc0dd19e76de00157518f3409d690f18fc0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* uic: Generate parameters for ambiguous signalsFriedemann Kleint2021-12-075-6/+47
| | | | | | | | Fixes: PYSIDE-1720 Pick-to: 6.2 Change-Id: I71b77db73471bdec7826bf69c7df521d7686537e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* androiddeployqt: Fix signing of paths with spacesKai Köhne2021-12-031-21/+24
| | | | | | | | | | Only use shellQuote() if the path is actually passed to a native API. For QFile API, use the unquoted path. Fixes: QTBUG-97649 Pick-to: 5.15 6.2 Change-Id: I9d8131819010bbd2faa8a81eef367245d90a767f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Fix dependency chain that collects the metatype json filesAlexey Edelev2021-12-021-36/+49
| | | | | | | | | | | | | | | | | | | | | cmake_automoc_parser has the logic preventing the run of moc with the --collect-json parameter if metatype json files are not changed. This logic only verify if the file list is changed but not their content. This change adds a timestamp file that contains the last metatype json file timestamp that was modified during the last cmake_automoc_parser run. The logic still prevents of running 'moc --collect-json' when the list of metatype json files is not changed, but also checks if their content is no changed. Another approach it to generate the depfile that can be utilized by CMake in add_custom_command as DEPFILE argument. But this concept only works from the second build attempt because of an issue related to dyndep. Pick-to: 6.2 Fixes: QTBUG-98532 Change-Id: I713f8bfa9ae769cefe0beac0b7fa19750b00a765 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Use depfile to control ABI-specific builds of executable targetsAlexey Edelev2021-12-021-4/+13
| | | | | | | | | | | | | qt_internal_${target}_copy_apk_dependencies should use CMake DEPFILE approach when it's possible. Since we don't have any specific artifact that androiddeployqt can produce when collecting dependencies this change adds simple timestamp file that is touched each time when androiddeployqt is running. The timestamp is used then as a file-level dependency for the qt_internal_${target}_copy_apk_dependencies target. Task-number: QTBUG-88841 Change-Id: I985535c7b6e471cb4cfbf90128628087dadc72d0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change the external projects approach for multi-abi buildsAlexey Edelev2021-12-021-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of generating external projects that build the project tree for each target, this creates a single project for each ABI that have the common for all targets configure steps. Each executable target then adds additional build step to each ABI-specific external project, that builds and copies dependencies to the "main" project build tree. To resolve dependencies from the build tree, when building multi-abi apk instead of scanning the build directories of external projects for dependencies, it makes sense to run androiddeployqt for each ABI-specific external project to copy all necessary libraries. This is done by adding --copy-dependencies-only flag to androiddeployqt that only copies the apk dependencies, but avoids creating apk and all the essential steps. The ABI-specific external project now handles the deploying of the build artifacts to the end-point apk deployment directory and the "main" project assembles the apk using collected artifacts. The ABI-specific external project uses the qt_internal_${target}_copy_apk_dependencies target to run androiddeployqt with the introduced --copy-dependencies-only flag. TODO: Build steps that build and copy the ABI-specific apk dependencies are non-skipable and will run each time top-level build is triggered. This behavior should be fixed by adding dependencies to the generated by androiddeployqt DEPFILES for each ABI in the top-level build. Task-number: QTBUG-88841 Tash-number: QTBUG-94714 Change-Id: Id442a9fbd589f58b70f4204c5215645056b379a2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Long live Q_GADGET_EXPORT!Marc Mutz2021-11-274-181/+202
| | | | | | | | | | | | | | | | | | | | | | Like Q_NAMESPACE_EXPORT for Q_NAMESPACE, this variant of Q_GADGET allows passing an export macro. This is useful to avoid exporting the whole class just to get the staticMetaObject hidden therein exported. Before anyone asks: No, we don't need Q_OBJECT_EXPORT, because QObject subclasses, being polymorphic, always need to have a class-level export macro (to export their vtable), but while that technique also works for value classes (the Q_GADGET audience), it is not desirable for them, because it makes inline functions exported in Windows debug builds, which is not what we want, because it needlessly restricts what you can to with the inline functions (e.g. remove). [ChangeLog][QtCore] Added the Q_GADGET_EXPORT macro, which is like Q_GADGET, but allows passing an export macro (like Q_NAMESPACE_EXPORT for Q_NAMESPACE). Fixes: QTBUG-55458 Change-Id: I546297de1e8aa45d83381991bcd3fbca61e1eef0 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* uic: Refactor CustomWidgetsInfo::extends() to use QAnyStringViewFriedemann Kleint2021-11-265-41/+41
| | | | | | | Task-number: PYSIDE-1720 Pick-to: 6.2 Change-Id: I2db4ee9586a87c70db08298e311d692e20a93af0 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* CMake: Fix cross-compilation to WindowsJoerg Bornemann2021-11-261-0/+2
| | | | | | | | | | ...and potentially to macOS. This amends 3f56950862181f4d50f30d66f577c933795522c3. Change-Id: Idf2acded37b59994459bc80ecda5733232f721f6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move macdeployqt and windeployqt from qttools to qtbaseJoerg Bornemann2021-11-2315-0/+6073
| | | | | | | | Having all *deployqt tools in qtbase will allow us to couple deployment support more tightly with the build system. Change-Id: I299efdacfa6b66a303bb3996ff3ff84e723210a5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QtBase: replace windows.h with qt_windows.hYuhang Zhao2021-11-231-1/+1
| | | | | | | | | | We have some special handling in qt_windows.h, use it instead of the original windows.h Change-Id: I12fa45b09d3f2aad355573dce45861d7d28e1d77 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Restore src/tools/moc/util/generate_keywords.proMarc Mutz2021-11-231-0/+5
| | | | | | | | | The file was inadvertently removed in ad2da2d27a590333fc89a56fc58700a09c3017b3. Pick-to: 6.2 Change-Id: Iaaf74d7ae382b0c9487fb25a58632dfc5be6538d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Move the 'qmake' feature to src/tools/configure.cmakeJoerg Bornemann2021-11-191-0/+7
| | | | | | | | This allows us to present 'qmake' in the tool-related section of the configure summary. Change-Id: I897dec23cb0608706ec01d9b91283dbce92b293f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add configure feature 'androiddeployqt'Joerg Bornemann2021-11-192-2/+15
| | | | | | | | | | | This makes it possible to turn off the build of the Android deployment tool. A new src/tools/configure.cmake is added that will be the place for all tool-related features in qtbase. Change-Id: Ic9264c93ee96de06c97d21d2f27f73256f48ffda Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Docs: Move manifest and androiddeployqt docs to where code livesNicholas Bennett2021-11-191-0/+246
| | | | | | | | | | | Removed content describing androiddeployqt from deployment-android.html to androiddeployqt.html,the qdoc source now living in qtbase. Docs src locations added to the qtcore.qdocconf. Task-number: QTBUG-97842 Pick-to: 6.2 Change-Id: I94783520280098ce1ab35f335a644bea70b8131a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Disable some tools and plugins if regularexpression feature is disabledMitch Curtis2021-11-121-1/+1
| | | | | | | | There are still more failures, but these are low-hanging fruit. Pick-to: 6.2 Change-Id: I3d3a1dc9e754bd4865c850cc1549b0b6fd6fa2f8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Capture full logcat output in Android unit testsAndreas Buhr2021-11-091-1/+69
| | | | | | | | | | | | | | | Previously, when running unit tests on Android, the log presented to the user was the log as known to the Qt logging system. This does not include log messages generated by Java code using e.g. Log.d("message"). Neither does it include log messages by system libs. This patch changes androidtestrunner to capture the full logcat output for the unit test. This improves the developer experience when working with unit tests. Fixes: QTBUG-93438 Change-Id: I580f728349041eb8a84a32d187754b7b5448f512 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Add --no-rcc-bundle-cleanup option to androiddeployqt toolAlexey Edelev2021-10-291-2/+13
| | | | | | | | | | | Add --no-rcc-bundle-cleanup option to androiddeployqt tool that helps to debug android build procedures and check the raw rcc bundle for missing items. Also add the QT_INTERNAL_NO_ANDROID_RCC_BUNDLE_CLEANUP CMake variable that adds the option when configuring projects for Android. Change-Id: I1f30ba979f9fb3274e44a53fdc5ebde4e65f0843 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Replace deleteRecursively function with QDir::removeRecursivelyAlexey Edelev2021-10-291-18/+1
| | | | | | | | | Use QDir::removeRecursively instead of deleteRecursively when cleaning up top-level build folders. Change-Id: Ifb406fc1965a0781eab4fd63a3764a84f4309d25 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix -trace build on WindowsIvan Solovev2021-10-251-3/+22
| | | | | | | | | | | | | | | | | | | | | | The TraceLoggingValue template does not have overloads for Qt types, so it was throwing multiple template instantiation errors while trying to log the unknown types. Fix it by serializing such types to QString using QDebug::toString, and the logging this string. Apart from that, fixes some other compiler errors on Windows build with -trace enabled: - implicit size_t to ULONG conversion - complaints on std::min - add QT_BEGIN_NAMESPACE/QT_END_NAMESPACE to the generated *_tracepoints_p.h headers to fix the namespace build. Task-number: QTBUG-97246 Fixes: QTBUG-97241 Pick-to: 6.2 Change-Id: Ifba134bab8d7fda7f1e30da9938e25cae813e1c6 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix compilation with QT_NAMESPACE and tracing on LinuxIvan Solovev2021-10-251-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tracegen tool was not taking into account that Qt could be build with a custom namespace. As a result, the combination of namespace build and tracing enabled was not working, because tracegen generated classes without the namespace. This patch fixes it. We cannot add QT_BEGIN_NAMESPACE/QT_END_NAMESPACE because of the tricky logic that recursively includes the generated header file multiple times, also including the code like static const struct lttng_event_desc *_TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)[] = { (hash)include TRACEPOINT_INCLUDE NULL, /* Dummy, C99 forbids 0-len array. */ }; where TRACEPOINT_INCLUDE is the path to the generated header. This patch is using QT_USE_NAMESPACE, wrapped into some #ifdefs. This should be safe, considering that the generated trace headers are only used as private API. The windows tracing support seems to be broken even in a non-namespace build, so it's not handled in this patch. Task-number: QTBUG-97246 Pick-to: 6.2 Change-Id: I12db76e199a3aa3abde641fbf99a6e1a3d7de203 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
* androidtestrunner: make sure that system-user is usedBartlomiej Moskal2021-10-211-1/+10
| | | | | | | | | | | | | | | | | | | | | | | It happens on Android Automotive emulator, that output file is in other directory. According android spec [1]: "If a default user isn't specified, each adb subcommand has a different user. The best practice is to retrieve the user ID with am get-current-user and then explicitly use --user <userId> for any command that supports it." That is the reason why output file can be found in /data/user/USER_ID/PACKAGE_NAME directory. Checking path related to current user was added as backup solution. [1]https://source.android.com/devices/tech/admin/multi-user-testing Pick-to: 6.2 Change-Id: Id7e6ddef74f4f20b7469a07bba6a71d3622c4e20 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* uic: Fix missing Python import when setting tab ordersFriedemann Kleint2021-10-201-1/+2
| | | | | | | | | Add QWidget as default import so that QWidget.setTabOrder() is found. Pick-to: 6.2 Change-Id: I7593008d1395e3fddacf7124d271a0eaf4c345d9 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Remove zlib from bootstrap libraryJoerg Bornemann2021-10-163-28/+0
| | | | | | | | | None of the bootstrapped tools use zlib anymore. Change-Id: I2cd7cb855ed671916a21c23449d9b6c4506f8546 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: replace ndk.dir with android.ndkVersion in build.gradleAssam Boudjelthia2021-10-131-3/+14
| | | | | | | | | | | | The use of ndk.dir in local.properties is deprecated in favor of android.ndkVersion in build.gradle, and will be totatlly removed in the future, so we need to adapt to that. Fixes: QTBUG-91391 Pick-to: 6.2 Change-Id: I54c57113a759d43c3685c9cdf2b9dcc5c948c0fd Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
* QLalr: use QList iterators in algorithmsGiuseppe D'Angelo2021-10-131-2/+2
| | | | | | | | There's no need to dereference+reference a QList's iterator only to pass the result to an algorithm, just pass the iterator. Change-Id: I7367010f6ab489d951715259bd51aeec790d3c84 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tools: Fix typos in source code commentsJonas Kvinge2021-10-123-4/+4
| | | | | Change-Id: I9666104a320f66b22c5144375ce7440bb59737e6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* androiddeployqt: Use QElapsedTimer to get elapsed timeFabian Kosmale2021-10-081-33/+18
| | | | | | | | | No need to reinevent the wheel. Also, use nanoseconds now that we have the precision available. Change-Id: I287d06198edc3f5bdf7f85bd5f3e235b1fea95a3 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QPlugin: move some of the logic from moc's output to qplugin.hThiago Macieira2021-10-041-47/+61
| | | | | | | | | | | | | | This will allow us to make changes in QtCore itself, without having to worry about moc compatibility. The output uses an #ifdef so this version of moc can still be used to compile earlier versions of Qt (usually, in cross-compilation environments). See discussion in the mailing list[1]. [1] https://lists.qt-project.org/pipermail/development/2021-September/041732.html Change-Id: I2de1b4dfacd443148279fffd16a39784c80c5f3b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* androiddeployqt: only write enabled architectures to build.gradleAndreas Buhr2021-10-041-0/+2
| | | | | | | | | | androiddeployqt writes a list of architectures into the build.gradle file. This list should only contain the architectures which are enabled. This patch adapts the generation of this list accordingly. Amends 07cfab07a2a489e021b56226824a2d9b1211fad7. Change-Id: I5c7c1886c54cc3b9a7e42af6eefbaf2a067a67d5 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* androiddeployqt: Allow to also provide multiple qt install directoriesRaphael Cotty2021-10-011-17/+91
| | | | | | | | | | | | | | | | | | The "qt" property can also be filled with a json object like this: "qt": { "x86":"/home/.../Qt/6.3.0/android_x86", "x86_64":"/home/.../Qt/6.3.0/android_x86_64", "arm64-v8a":"/home/.../Qt/6.3.0/android_arm64_v8a", "armeabi-v7a":"/home/.../Qt/6.3.0/android_armv7"} That allows to update the options.qtInstallDirectory when changing the current architecture. The "qtHostDir" property is also added to provide the path to the qt host installation (rcc, qmlimportscanner). Change-Id: I3f0c36cc7a7030d45adc1a4dccaaad61dd538aea Task-number: QTBUG-88841 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Specify Android architecture in gradle filesAndreas Buhr2021-09-301-1/+7
| | | | | | | | | | | | | | | | | | | When building for armeabi-v7a, building and APK using "ninja foo_make_apk" works. Building it by calling "gradlew assembleDebug" works. Opening the "android-build" folder in Android Studio and clicking the "Build" button works. But clicking the "Run" or "Debug" button in Android Studio does not work when the attached phone is arm64-v8a. Then Android Studio automatically selects the v8 architecture which does not find the Qt libraries. This patch adds explicit ABI selection to the gradle configuration files. With explicit ABI selection, Android Studio does not try to outsmart you. Pick-to: 6.2 Fixes: QTBUG-96701 Task-number: QTBUG-87022 Change-Id: I4ad6356c38b7eca004c0e0dbbb357cab7de84c0f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Rename variable to not reference Qt5Andreas Buhr2021-09-301-0/+4
| | | | | | | | | In the Android gradle files, the variable qt5AndroidDir refers to Qt5 and might confuse users. This patch renames to qtAndroidDir. Pick-to: 6.2 Change-Id: Ib18a3cd2c38646e4c6c0435dae9234f0f7887eb5 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Skip unnecessary commands when cross-building toolsJoerg Bornemann2021-09-2712-0/+12
| | | | | | | | | | | | | | | Introduce a new macro qt_internal_return_unless_building_tools which simply calls return() if tools are not built. This macro is supposed to be called after qt_internal_add_tool(). Using this macro avoids having to special-case code for when qt_internal_add_tool() creates imported targets in cross-builds. Adjust pro2cmake accordingly. Task-number: QTBUG-85084 Change-Id: I9e1c455c29535dd8c318efa890ebd739c42effc1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: fix error when signing bundlesAssam Boudjelthia2021-09-241-1/+1
| | | | | | | | | | | | | | The jarsigner command that was being used was malformed before the file path leading to wrong signing command. A sample of the malformed command part "-storepass password⍣/path/to/package", note the char after 'password'. So having auto produces a QStringBuilder that's returning the malformed char. Fixes: QTBUG-96838 Change-Id: I5477f6913a74d79ebaf029ef7f4e2745c9f7ced0 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit f492790611fe15a4745c8ad0c97259f438c91b6b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* uic: Add QWebEngineViewFriedemann Kleint2021-09-201-0/+1
| | | | | | | | | | This is required to generate the correct import for Python. Pick-to: 6.2 6.2.0 Task-number: QTBUG-63235 Change-Id: I6aaff82058e3f0a5453da15d8d470f06ad9a5a16 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Don't bootstrap rccJoerg Bornemann2021-09-201-1/+0
| | | | | | | | The rcc tool doesn't contribute to the build of QtCore anymore. There's no need to link it against the bootstrap lib. Change-Id: I5272d439a05f852eeea88b3a6b95c5ad6dd4e987 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Support deploying of libraries from a build tree when building android apkAlexey Edelev2021-09-091-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | If the project consists of an executable and multiple libraries that are linked to the executable, currently you need to specify them manually using QT_ANDROID_EXTRA_LIBS target property. This automates deploying of the libraries that are a part of the project build tree. _qt_internal_collect_target_apk_dependencies collects all the known non-imported shared libraries from the project build tree. When running androiddeployqt we specify extra library directories that point to the collected library locations in build tree, to help androiddeployqt resolve shared libraries that are build as a part of the project. The described procedure is running automatically if CMake version is greater than or equal to 3.18 is. For the CMake versions less than 3.18 users need to call a new public qt_finalize_project function at the end of project's top-level CMakeLists.txt Task-number: QTBUG-94714 Change-Id: I400ca4e49e940cfc25ae90d65372e79825bee55a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* androiddeployqt: Add support of multiple qml root pathsAlexey Edelev2021-09-081-20/+37
| | | | | | | | | | | | | | | | | If application uses qml files from multiple locations, e.g. subdirectories inside source directory it's important to provide this information to qmlimportscanner to produce consistent set of QML modules that need to be included into the end-point application apk. This makes possible to specify more than one QT_QML_ROOT_PATH per target and propagates these paths to the qmlimportscanner using androiddeployqt tool. Pick-to: 6.2 Task-number: QTBUG-93340 Change-Id: Ic31017b3f2671108adb6d6118ef1c75f1ccc3ec5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Allow building android{deployqt, testrunner} under target host_toolsAssam Boudjelthia2021-09-074-11/+18
| | | | | | | | | | | When doing a cross build for Android we need only the host tools which are available under cmake's host_tools target, but androiddeployqt and androidtestrunner are not part of that. This fixes that. Pick-to: 6.2 Change-Id: Icdbc4a78ca050b66ec8df656d9ec766ef6c9f4b9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: pass -g to testrunner to grant run time permissionsAssam Boudjelthia2021-08-291-1/+1
| | | | | | | | | | | Some Qt modules/tests go through features that require run-time Android permissions which are granted by user input, that of course is not ideally possible while running unit tests. So when installing the app adb can do that for us. Pick-to: 6.2 Change-Id: I92d33d5213c3779d7ca246ec0fb359d2ead4fa6f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update Android default SDK from 29 to 30Juha Vuolle2021-08-271-1/+1
| | | | | | | | | | | By the time of Qt 6.2 release all new apps targeting Play store must target API level 30 (Android 11) or above (starting in 08/2021 for new apps and 11/2021 for existing apps' updates). Pick-to: 6.2 5.15 Task-number: QTBUG-94451 Change-Id: Id7fa2fd62899a7259e365c917292c6c3ac0d2b0d Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* qdbuscpp2xml: add support for custom types with a new -t optionDavid Faure2021-08-251-8/+66
| | | | | | | | | | | | | | | | | qdbuscpp2xml can't know about custom types registered with qDBusRegisterMetaType<> in the server application whose header file it's parsing. So add support for custom types using a command line argument. For example: qdbuscpp2xml -t 'std::vector<Person>=a{ssss}' peopleserver.h which generates <arg name="people" type="a{ssss}" direction="in"/> <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="std::vector&lt;Person&gt;"/> [ChangeLog][QtDBus][qdbuscpp2xml] Added a -t option to specify how to handle custom types. Change-Id: Ic0cad4f4eec8d5dfa48055c3a46cc772b1a60174 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdbusxml2cpp: generate "using" rather than "typedef"David Faure2021-08-241-2/+2
| | | | | | | | | | | It's more modern :) I was hoping it would allow to forward declare the org::kde::Foo class, but unfortunately it doesn't, the forward declaration has to use "using" or "typedef" too... Change-Id: I9ec2900ac25c1bca75d097aa339fd2a872568f95 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qdbusxml2cpp: don't generate an include for all of QtDBus+QtCoreDavid Faure2021-08-231-2/+12
| | | | | | | This, however, has to wait for Qt 7 for compat reasons. Change-Id: I84db4715bf2e9d080d1446d24f0996c78a875e63 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>