aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/cpp/android-gcc.qbs
Commit message (Collapse)AuthorAgeFilesLines
* Android: Fix debugging supportRaphaël Cotty2020-12-081-9/+5
| | | | | | | | | | | | | | | | | Add archSuffix to generate the library with the architecture name for Qt > 5.14 (before the lib was renamed which prevented debugging). Remove rpaths as they are not used on android and generate warnings. Update target and defines to comply with android's Build System Maintainers Guide. Remove stripping step in Qt.android_support as androiddeployqt actually does the stripping. Change-Id: I46a273c1cded753223c7b759670477815b625267 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Do not append the version number to a library nameChristian Kandeler2020-08-041-0/+1
| | | | | | | | Only the ".so" suffix is supported on Android. Fixes: QBS-1578 Change-Id: Idebece5338a765e779ff987fd89af66977ecc0fe Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: clean flagsRaphaël Cotty2020-05-131-11/+0
| | | | | | | | | | | | | | | | | | | | | | Update flags following those changes: https://codereview.qt-project.org/c/qt/qtbase/+/268268 https://codereview.qt-project.org/c/qt/qtbase/+/271909 https://codereview.qt-project.org/c/qt/qtbase/+/278646 Remove support to ARMv5 (armeabi), MIPS, and MIPS64 because its support was ended in r17 and minimum ndk is r19... Remove gdb server as it's not needed anymore since by qtcreator (since 4.9 IIRC) From https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md Adding linker flags: --build-id=sha1 : Additional Required Arguments section --gc-sections : Controlling Binary Size section Fixes: QBS-1496 Change-Id: Id522bf6bb736c58244aa511189f7acdd0525ab12 Reviewed-by: BogDan Vatra <bogdan@kdab.com> 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Android: Fix binutils pathChristian Kandeler2019-07-161-1/+1
| | | | | | | | Amends 65cb0d3e2d. Fixes: QBS-1459 Change-Id: I771cc179bcc996559d76c85d785780a1b044812b Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Android: Fix build with NDKr20BogDan Vatra2019-06-171-1/+1
| | | | | | | | In NDK r20 clang adds -lc++ library automatically which leads to link fails. Change-Id: Ifa5ae1f4be7d8a93146ef08a5dc312596dd19147 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Nuke mips[64] abi supportBogDan Vatra2019-04-261-7/+1
| | | | | | | Mips' abis were removed long time ago from the Android NDK Change-Id: I8d006b6758ee4faa7f2d697a7252981470d43e1a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: default to c++14BogDan Vatra2019-04-251-0/+1
| | | | | | | See https://github.com/android-ndk/ndk/wiki/Changelog-r19 Change-Id: Iaa778979bad4b42dbbc0b0915104cf9f9738309e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Nuke support for old NDKsBogDan Vatra2019-04-251-101/+32
| | | | | | | | | | | | | | | | - Support NDK only r19+ - Remove deprecated and unsupported stl libs: "system", "gabi++_static", "gabi++_shared", "stlport_static", "stlport_shared", "gnustl_static", "gnustl_shared" - Fix armv7a link (we need to link against libc++.[a/so].API) - Use lldb - Use llvm bin utils [ChangeLog][Android] Support NDK only r19+, remove deprecated and unsupported stl libs, use lldb and llvm bin utils Change-Id: If9d5d5462dffb6c9bf481f910ee2c3ba03bc5649 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* NDK r+19 doesn't need gcc-toolchain anymoreBogDan Vatra2019-04-241-1/+1
| | | | | Change-Id: Ibe91183e1944365f10e64c104187167a6310d1fd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: follow official android flags for cmakeBogDan Vatra2019-04-241-2/+13
| | | | | | | | | Update our cflags and lflags with the ones found in <ndk_r19>/build/ cmake/android.toolchain.cmake Task-number: QTBUG-73274 Change-Id: Ieb1923ffa6658fa917f7ead1e1bc036cf595f8bb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Fix libc++abi issuesChristian Kandeler2019-02-131-4/+12
| | | | | | | | | - Fix include path for NDK >= r13. - Link against libc++abi.a when using the "c++_shared" STL variant. Fixes: QBS-1423 Change-Id: I70a9fcf54c7042ba4639276139254df8eefa662b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix some missed license headersDenis Shienkov2019-02-131-1/+1
| | | | | Change-Id: I98570fb463bf856a6b6ab2b39fa2bca27b8c0500 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.12 into masterChristian Kandeler2018-10-121-8/+19
|\ | | | | | | Change-Id: I96c735aeda89e02f1fa9107ecfc10ebf4b554dbc
| * Android support: Adapt to changes in newer revisionsChristian Kandeler2018-10-111-8/+19
| | | | | | | | | | | | | | | | 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>
* | Android: Rewrite the rules gathering binaries for packagingChristian Kandeler2018-10-041-70/+17
| | | | | | | | | | | | | | | | | | | | | | These rules were unnecessarily complicated; in particular, the indirection via a text file for the gdbserver and STL binaries was not needed. This also fixed the gdbserver file name in the package: It has to be libgdbserver.so, rather than just gdbserver as on the host. Change-Id: I2315660983904e8b922164be9054d6bba51f852d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Enable the Application item to create Android appsChristian Kandeler2018-08-101-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The formerly required AndroidApk item is no longer needed: We just tag the APK file as an application and let the Application item pull in the Android.sdk module for Android targets. It is also possible to have native code directly in the Application product; in that case, the multiplexed variants become dynamic libraries and the APK file is built for the aggregate. [ChangeLog] The AndroidApk item was deprecated, a normal Application item can be used instead. Change-Id: I04f5f3892f354ca9eb4f2da8055abcd8d072aba0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove the base module import from shared imports and modulesJoerg Bornemann2018-06-221-1/+0
|/ | | | | Change-Id: I5270e033dc41b5bd76a417099514c69cc073008b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.10 into masterChristian Kandeler2017-12-151-1/+3
|\ | | | | | | Change-Id: Iab942ed25d06038cf8c172eb70dcd8e9a720e1c8
| * Fix Android builds in release mode with NDK r12 and aboveJake Petroules2017-12-151-1/+1
| | | | | | | | | | | | Task-number: QBS-1256 Change-Id: I286327f8b33ecb72851551bbbf2108717a116b1a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix GCC support for "bare metal" systems againChristian Kandeler2017-12-111-0/+2
| | | | | | | | | | | | | | | | | | This was fixed before in 8176a4d419 and broken again in 72eedbb0a4. Fix it for good this time using module priorities. Task-number: QBS-1263 Change-Id: Ib1702299ef6c51b19a9082da96485ef5387dc1bb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Introduce cpp.rpathOriginJake Petroules2017-12-081-1/+1
|/ | | | | | | | [ChangeLog] Added property cpp.rpathOrigin which evaluates to @loader_path on Darwin and $ORIGIN on other Unix-like platforms. Change-Id: If5770a83ae32f29ee520fd00b07ed8f0caf6bd48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use Module.priority to choose the right cpp module instanceJoerg Bornemann2017-09-271-0/+1
| | | | | | | | | Replace the negating conditions in our cpp instances with module priorities. This removes the need of knowing about all other more specialized instances in more general instances. Change-Id: I511ba11f2cb69ea1458b786a2db4309de8910ebf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Do not modify libraries in the NDKChristian Kandeler2017-08-221-8/+26
| | | | | | | | | They don't belong to us, and they may not even be writable. Instead, make the strip command create a new file. Task-number: QBS-1176 Change-Id: Ifd387d3fbcf475e662344ceefa6d289b45c4ae16 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Re-introduce endianness propertyJake Petroules2017-06-291-0/+2
| | | | | | | | | | | | | Now it can actually be useful, in order to select a specific endianness when building for architectures that are bi-endian. For example, MIPS and PowerPC. This patch makes it possible to build for ppc64le, which is the only variant of the PowerPC architecture that seems to be relevant today. ppc32 and all big-endian variants seem to have fallen out of use. Change-Id: Id1b9f9b397990136ab9aa899829345d426465824 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Take Unified Headers into account with the Android NDKJake Petroules2017-05-301-5/+22
| | | | | | | | [ChangeLog] Added support for Android NDK Unified Headers Task-number: QBS-1109 Change-Id: If16e4eef826a684c9dd8b4bbd025b159636acbc7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Introduce cpp.driverFlagsJake Petroules2016-08-151-0/+2
| | | | | | | | | | | | | This property allows specifying a set of flags to pass to the compiler driver. Effectively this is similar to specifying flags in both *compilerFlags and linkerFlags, except driverFlags will never be passed to the system linker. [ChangeLog] Introduced cpp.driverFlags, which allows specifying flags to be passed to the compiler driver (in any mode), but never the system linker. Change-Id: I2171246f3b20cbaca74114cf4fa0b6d38c23c621 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Get rid of Android hard float "ABI"Jake Petroules2016-07-301-15/+6
| | | | | | | | | | This was never recommended for use, and has been removed in the latest Android NDK r12. See https://github.com/android-ndk/ndk/blob/master/docs/HardFloatAbi.md for full details on the matter. Task-number: QBS-989 Change-Id: I49fd1b7527d43e8b6caa2b905a41a6f0b1e5b4af Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Flip the cpp and Android.ndk dependencies.Jake Petroules2016-05-231-0/+268
This is more logically consistent and allows us to use a Probe to get compiler info in the cpp module. This is required for a subsequent patch. Change-Id: Id25ee84f201e8e72ecc24af4ec5c27cedc47b660 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>