aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/qbs-setup-android
Commit message (Collapse)AuthorAgeFilesLines
* Initial CMake portIvan Komissarov2020-08-171-0/+12
| | | | | | | | | | | | | | | | | | | This change allows to build Qbs using CMake build tool Tested platforms - Linux (gcc) - macOS (clang) - Windows (msvc2017) Missing features (compared to Qbs build) - Documentation build - Bundled QtScript support - Static build - .pc file for qbscore - qbs module for qbscore Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix MinGW buildChristian Stenger2020-08-061-1/+6
| | | | | Change-Id: I9894098b05004bb99273e091e3d1821f88d7c4af Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix '-Wclazy-range-loop' warningsIvan Komissarov2020-06-081-2/+3
| | | | | | | The warning says 'c++11 range-loop might detach Qt container' Change-Id: I6b6a91d6b3298702246da94f05d21623d5f13faa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add --system to qbs-setup-androidChristian Gagneraud2020-05-203-2/+10
| | | | | | | | This allow to have android settings install system wide, similar to qbs-setup-qt and qbs-setup-toolchains. Change-Id: Idc01e0ebe6e3f6f17b2e48e84f6fe2b0e95f0c63 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Update support to qt 5.14 and multi-arch apks for Qt appsRaphaƫl Cotty2020-02-041-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before qt 5.14. The profile property "moduleProviders.Qt.qmakeFilePaths" is set with one or more paths to the different android architectures. Each qmake path belongs to a different android architecture installation. So each qmake is used to generated the Qt module corresponding to the architecture. Although qbs can generate multi-arch apks using multiplex mode, this is not possible when the project depends on qt libraries. This is because of the restriction of the qt tool androiddeployqt used by qbs. Now with qt 5.14. All android architectures are installed in the same directory. So the profile property "moduleProviders.Qt.qmakeFilePaths" is set with one qmake path. This directly impacts the qbs-setup-android tool and the generation of the Qt modules. Because qt libraries are installed in the the same directory, they have the abi in their name (libQt5Core_armeabi-v7a.so). So the rules that generate the apks are also impacted. The new androiddeployqt have a new interface (json config file format and requires to have the input libraries installed in the deployment directory) which allows the generation of multi-arch apks. So Qt.android_support modules needs to be updated as well. Fixes: QBS-1497 Change-Id: Ibd546f356c38a05f42dfcac0a4ec92bd82d6f700 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Apply 'modernize-use-equals-default' fix-itIvan Komissarov2019-11-251-4/+1
| | | | | Change-Id: Iabdc777d2e8492d9903109365b0f3b1a5441ca11 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Apply modernize-loop-convert fix-itIvan Komissarov2019-05-211-2/+2
| | | | | | | Makes clang-tidy happier Change-Id: Ic29b552572719ea58c7ad385cc6e1d68cef9eedc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix uninitialized variablesIvan Komissarov2019-05-021-1/+1
| | | | | | | | | This fixes most of clang analyzer warnings about uninitialized variables in ctors Change-Id: I879c785594307ed3fe7140588338a6b2a1e4db65 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qbs-setup-qt is not needed anymoreBogDan Vatra2019-04-251-25/+1
| | | | | | | Now we have automatic Qt detection, and that set is not needed anymore. Change-Id: I9c01dad173ac70cbeaab64b412255057d7ce8cbd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Return initializer list where it is possibleDenis Shienkov2019-02-261-5/+2
| | | | | | | | | This fixes this clang-tidy warning: warning: avoid repeating the return type from the declaration; use a braced initializer list instead [modernize-return-braced-init-list] Change-Id: I421e1e47462fe0e97788672684d47943af7df850 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use QStringLiteral more where it is possibleDenis Shienkov2019-02-252-10/+10
| | | | | | Change-Id: I7419cc3fbc1e8776de3943852dcedab4c95d1c32 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Detect Qt via a module providerChristian Kandeler2019-02-121-4/+4
| | | | | | | | | | | | | | | | | Creation of qbs modules for Qt is now done on demand during project resolving. The qmake executable(s) are looked up via PATH or taken from the Qt.qmakeFilePaths provider property. As a result, Qt projects can now be built without a profile. The qtprofilesetup library is gone; its code is now in the module provider. I kept the C++ -> JavaScript conversion as straightforward as possible and mostly resisted the temptation to "optimize". The setup-qt tool still exists and mainly sets Qt.qmakeFilePaths. [ChangeLog] It is no longer required to call setup-qt before building Qt projects. Change-Id: I5b7e4711ec47b996911c499f29d8129d90e4731e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.12 into masterChristian Kandeler2019-01-111-0/+1
|\ | | | | | | Change-Id: Id535625f198f10a920f32e198d39b38d46b35668
| * Make setup-toolchains and setup-android behave like setup-qtChristian Kandeler2018-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | ... with regards to handling dots in the profile name. We don't allow dots to appear in profile names. setup-qt auto-replaces them with hyphens, while setup-toolchains and setup-android did not. Now they all do. Fixes: QBS-1413 Change-Id: I567e07e64a5e18fe50ead700d3584d60da276dae Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | setup-android: Complain about unknown optionsChristian Kandeler2018-11-281-0/+2
|/ | | | | | | | | ... instead of silently ignoring them. Fixes: QBS-1412 Change-Id: If6687372132a03b3ca04194f7525856eb82b8bb7 Reviewed-by: Erik Schilling <ablu.erikschilling@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android support: Adapt to changes in newer revisionsChristian Kandeler2018-10-111-4/+25
| | | | | | | | Revision 17 dropped some architectures, revision 18 removed GCC. We also missed some earlier changes to clang-related paths. Change-Id: Ie2fa1891f7f4de28e18ea6caadce9eac964bb523 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* setup-android: Fix case where there is only one architectureChristian Kandeler2018-06-251-2/+6
| | | | | | | | There is no multiplexing in that case, so we have to set qbs.architecture instead of qbs.architectures. Change-Id: I2f96bfd6b67a6ef45882ba5ce9eb35ab2317e8b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add qbs.targetPlatform and qbs.hostPlatform propertiesJake Petroules2017-11-221-2/+1
| | | | | | | | | | | | | | | | | This allows users to set the target platform from within project files, since it is a scalar value. The values of qbs.targetOS and qbs.hostOS are now derived from these new scalar properties. [ChangeLog] Added qbs.targetPlatform and qbs.hostPlatform properties which are scalar versions of qbs.targetOS and qbs.hostOS. qbs.targetPlatform is a "write-only" property that can be used to set the OS/platform that is being targeted, while qbs.targetOS and qbs.hostOS should continue to be used to *read* the OS/platform that is being targeted. qbs.targetOS is also now read-only. Task-number: QBS-1070 Change-Id: Id3fd206a5b2ebee2d626f3e5ab02ecd1dc90d90a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* STL compatibility: use empty() instead of isEmpty()Jake Petroules2017-11-162-7/+7
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: Iab6d46dcc3be246d1650aae2b1730f933b717be8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* STL compatibility: use size() instead of count()Jake Petroules2017-11-152-4/+4
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: Ia733befe7885dc3c643d5c84e151312bfd86a3c6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* STL compatibility: use front() instead of first()Jake Petroules2017-11-141-1/+1
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: I82f0eb38b6a5a3b75a4ed38d97bdb6ce164d09b3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use the [[noreturn]] attribute instead of Q_NORETURNChristian Kandeler2017-10-301-2/+2
| | | | | | | We can do this now that we require MSVC 2015. Change-Id: I77be55435d4db6c6ff17afeff779e163cf3803fb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix help output for qbs-setup-androidChristian Kandeler2017-10-051-6/+4
| | | | | | | | | We forgot to update the help text when we got dropped the "one profile per architecture" approach. Change-Id: I81d7634e6228e4058d97031fc5bdf2a997f35429 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add Windows UAC fix to qbs-setup-android and qbs-setup-toolchainsJake Petroules2017-08-213-0/+22
| | | | | | | It was only applied to qbs-setup-qt, but missing from the others. Change-Id: I3f2dd63c717d9117a8699fc76bac93e573cad60c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: Multiplex over architectures instead of profilesChristian Kandeler2017-05-261-26/+56
| | | | | | | The extra per-architecture profiles are gone now. Change-Id: I78017d0840f46ee3654dadc4cf9402c63bfc7883 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Teach qbs-setup-android about QtChristian Kandeler2017-02-075-10/+116
| | | | | | | Task-number: QBS-992 Change-Id: Id5685caa40bc430c345b5632e3c9c7fefe71b02d Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Fix command-line parsing bug with some toolsChristian Kandeler2017-02-031-1/+1
| | | | | | | The -h option was not recognized. Change-Id: I8ee264f24646b4be01bbd9954d208f94b80c51cb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Change style of #includes of Qt headersJake Petroules2017-01-045-6/+6
| | | | | | | | | | | | | | | | By using q<lowercase>.h headers, we become more bootstrap-friendly, as no full syncqt is required any more. In the same go, prefix all includes with the module name. This helps grep-based analysis of which parts of Qt are used and where. It's also consistent with Qt's public headers (where syncqt enforces the style). Testdata and examples are excluded from the change, as they are not relevant for bootstrapping. Change-Id: I9539b1d795e87fca6e5fc6c91acbb775b79208d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update license headersIikka Eklund2016-08-293-42/+69
| | | | | | | | | | Patch-set 2 includes *.cpp *.c Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ie6e493097af6f7dd6a8adff170eb856f496e689e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Update license headersIikka Eklund2016-08-292-28/+46
| | | | | | | | | | Patch-set 1 includes *.h Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ib6cf3ac47dfba6dff262fded44bc952aef3bda8b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Merge remote-tracking branch 'origin/1.5'Joerg Bornemann2016-06-085-5/+5
|\ | | | | | | | | | | | | | | Conflicts: doc/reference/items/transformer.qdoc share/qbs/modules/cpp/GenericGCC.qbs Change-Id: I45560834560019b18274c373c45651eb8aadd206
| * Replace 'the Qt build suite' with 'Qbs' in copyright notices.Jake Petroules2016-06-065-5/+5
| | | | | | | | | | | | Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Automatically determine the compiler's architecture.Jake Petroules2016-05-111-4/+4
|/ | | | | | | | | | | | | | | | | | | | Also, do extensive validation on the result by ensuring that the arch specified by the user is what which the compiler will actually generate when invoked, by constructing an appropriate argument list and doing a dump of the compiler's macros. This ensures a user cannot specify a bogus architecture which is not actually the one the compiler will generate. Furthermore, compiler probes will no longer generate the wrong value for qbs.architecture for ARM-family architectures, since the triple returned by $(CC) -dumpmachine does not include the subarch which needs to be passed to the compiler. Users will also be prevented from subverting proper operation by attempting to pass raw ABI-related flags in the flags properties. Change-Id: I2aed8e0afefdf7e5a4112183f2f9ea96b1e22b51 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* qbs-setup-android: allow SDK directory to be unset.Jake Petroules2016-03-142-10/+7
| | | | | | | | In light of the Android SDK and NDK probes which find the paths automatically, this is not a particularly useful restriction. Change-Id: Iab1a00f29b095ee2a6de45ac15f0d4200c402f4b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Android SDK: automatically detect latest build tools and platform.Jake Petroules2015-08-131-70/+0
| | | | | Change-Id: I74a6f3cef1ec22a2e3f3d5e263396ea06c3d905d Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Separate Android profile name components with '-' instead of '_'.Jake Petroules2015-07-301-1/+1
| | | | | | | | | This is more consistent with the rest of qbs and as a helpful side effect, encourages Android profiles to be re-created since their generation was recently completely overhauled. Change-Id: I1041584eb197b39d9ca3634687ea86d2fb95a2d5 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Fix MSVC 2012 build.Jake Petroules2015-07-281-8/+8
| | | | | Change-Id: I7a8059b6a73950405fd4756b9dc2240c2722aaa8 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Reduce setup information hardcoded into toolchain probes.Jake Petroules2015-07-271-0/+1
| | | | | | | This moves a step closer to making profiles as thin as possible. Change-Id: I35fa165c2fa50e9830a460521ba0e3c2c97284c6 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Move more Android NDK logic out of the profiles.Jake Petroules2015-07-221-321/+17
| | | | | Change-Id: Ie7c61fde802921b48d588b2760f798431fab81bf Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Make toolchain version in Android NDK flexible.Jake Petroules2015-07-201-28/+60
| | | | | | | This paves the way for Clang-based toolchain support. Change-Id: I426ea434c562a03cd96ece6a3f19e86a2480de07 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Add unix to targetOS in qbs-setup-androidIlya Lyubimov2015-07-151-2/+4
| | | | | Change-Id: Idcac4fd8a51847f27c47a35e2be033fd0251d498 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* Make qbs.architecture an optional property.Jake Petroules2015-07-091-1/+0
| | | | | | | | | | | | | | The value "undefined" now indicates an architecture-independent target like the CLR or JVM. The cpp module's copy of the architecture property is not required unconditionally either, because there exist implementations that compile C/C++ to architecture-independent targets (Emscripten). However it remains required for GCC and MSVC toolchains where a specific architecture is always targeted. Change-Id: I0810e71bd561d3b9bc1f83d70329ee78d129e9db Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* remove Qt4 work-aroundsJoerg Bornemann2015-03-191-1/+1
| | | | | | | QStringList::join supports QLatin1Char arguments in Qt5. Change-Id: Ic840473f0cb54c8c2a781bec3356c3c3c8e113af Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* update license headersJoerg Bornemann2015-03-025-22/+22
| | | | | Change-Id: I36d825db3a5ef32c162c3063aab1e8a1f2696f4f Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Merge branch '1.3' into 'master'Christian Kandeler2015-01-282-12/+12
| | | | | | | | | Conflicts: doc/reference/jsextensions/jsextensions-general.qdoc src/lib/corelib/language/evaluatorscriptclass.cpp src/lib/corelib/language/evaluatorscriptclass.h Change-Id: Ic9b77b56e8fc8bf93e0a553930757de8c93fed22
* Add autotest for Android.Christian Kandeler2015-01-131-0/+1
| | | | | | | Covers SDK and NDK functionality. Change-Id: I5f252ba43918a2440848b6f7d027c9082946ff1e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Android: Set qbs.targetOS in SDK profile also when no NDK is present.Christian Kandeler2015-01-131-1/+1
| | | | | Change-Id: Iacfec11a305d46b1707456b01f1d413bb9161228 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Clean up Android setup tool.Jake Petroules2015-01-121-29/+21
| | | | | Change-Id: Ic88cbdfab66bb2433e822d5f129d744a88d25ed3 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* First stage of Android support.Christian Kandeler2015-01-057-0/+780
Supports building debug APKs with or without native libraries. Features to be added in subsequent patches: - Things related to release packages (release signing, code obfuscation, image crunching) - AAR packages - Test projects - Qt-specific stuff - Possibly deployment & running Also, the setup tool should become a library at some point, namely once we know what the interface should look like in order to make sense with Qt Creator. Change-Id: I1e9bc950e8c95e136d2a6a702dc95059e9047072 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>