aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules
Commit message (Collapse)AuthorAgeFilesLines
* baremetal: Add IAR MSP430 toolchain supportDenis Shienkov2019-08-152-5/+38
| | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the MSP430 processors family. To use it with Qt Creator, it is enough to add there a desired Kit with a custom IAR C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: iar Tested with EW for MSP430 v7.12.4 on Windows using the simple projects samples which come with the default IAR installer. Change-Id: I6a31da1823fd08ba7bf41a315ac20e98f5ba77f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* C++: Add support for clang on WindowsChristian Kandeler2019-08-147-142/+292
| | | | | | | | | | | | | This is about clang in "mingw mode", not clang-cl. When targeting Windows, clang is a lot like mingw, so factor out the common parts into a new base module. Testing uncovered a number of invalid assumptions in our autotests, which are also fixed in this patch. In addition, minor adjustments had to be made to the Qt.core module and to the qbscore lib. Change-Id: I73085dc62a65e2a9d0397cf234c8641989246f22 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* baremetal: Fix detection of C++ language option for IAREW STM8Denis Shienkov2019-08-141-1/+1
| | | | | | Change-Id: I340c66090f0934eb2bc6dccdd0c2dbe1b1e1db2f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add command and AutotestRunner timeoutJochen Ulrich2019-08-011-0/+1
| | | | | | | Task-number: QBS-1454 Change-Id: I6e2514d10cca0cba0a14456ecd2abfb495539ee4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* bare-metal: Fix SDCC toolchain moduleDenis Shienkov2019-07-292-24/+11
| | | | | | | | | | | | | * SDCC support only the '.lib' library suffix. * SDCC support only the '.rel' object suffix. * SDCC produce the 'ihx' default image format. Besides, SDCC expect same target flag for both compiler and linker. We automatically take this flag from the cpp.architecture property. Change-Id: If7eac1d5ddc0c571d3c6a870f46f78d61d699f12 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.14 into masterChristian Kandeler2019-07-263-5/+16
|\ | | | | | | Change-Id: Ic632b377bf10e2b320956011e9a7d4eea99f560b
| * baremetal: Fix detection of C++ language option for IARDenis Shienkov2019-07-241-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... which is used at dumping of predefined macros and a header paths. Reason is that for the different architectures the IAR use different C++ language options: * for ARM: --c++ * for AVR or 8051: --ec++ Change-Id: Ic2b4d50e9e2a978a5cbc69ed5353d5953e83c85d 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>
| * Set minimumTvosVersion to "6.0" by defaultIvan Komissarov2019-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes (at least) two compile errors: - clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later) - ld: library not found for -ldylib1.o The dylib1 is only present on macOS and not present in recent tvOS/iOS SDKs, clang tries to link to it if deployment target is less or equal to "5.0". Change-Id: Ie77a514bb2661312823df054f0dfca07d69e3059 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Set cpp.minimumIosVersion to "6.0" by defaultIvan Komissarov2019-07-051-1/+1
| | | | | | | | | | | | | | | | | | This is required because earlier iOS versions are broken in recent XCode installations (at least, for XCode >= 7.0.0) Change-Id: Ib55e2eafcf26357695ab057da8109921518b7fea Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add IAR STM8 toolchain supportDenis Shienkov2019-07-262-6/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the STM8 processors family. To use it with Qt Creator, it is enough to add there a desired Kit with a custom IAR C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: iar Tested with EW for STM8 v3.11.1 on Windows using the simple projects samples which come with the default IAR installer. Change-Id: Ibc116ceb33b7df49c3241d26fa97136255ba06dd Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add STM8 architecture for SDCC toolchainDenis Shienkov2019-07-262-3/+32
|/ | | | | | | | | | | | | | | | Previous implementation of SDCC toolchain based on an assumption, that the default target architecture always is MCS51. But, the SDCC compiler support multiple architectures: * http://sdcc.sourceforge.net/ So, it is makes sense to add support and for STM8 architecture to the SDCC toolchain. Change-Id: Ibbd32764fe2fac3e45fda93ac3d903c3619efb18 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Fix typo in option to enable C++ language for IARDenis Shienkov2019-07-031-2/+2
| | | | | | | | | We need to use the '--c++' option instead of '--ec++' to dump the macroses and headers for the C++ language. Change-Id: I545e661babc1ffa84ef189d28b2dd59be3cef29e Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for gRPC to the protobuf.cpp moduleIvan Komissarov2019-06-272-9/+100
| | | | | | | | This implements support for the gRPC framework: https://www.grpc.io Change-Id: Ia85461b9618e73827114c137fce8615e5a8139e3 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Assume that libc++ is present on iOS if cpp.minimumIosVersion is not setIvan Komissarov2019-06-261-2/+2
| | | | | | | | Otherwise, tests fail to locate old c++ library on recent Macs. Change-Id: I6ff5ceb0753dea73a5da1c70cfeb97b848cb7948 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>
* Fix javac version detectionIvan Komissarov2019-06-142-3/+16
| | | | | | | It seems, that javac -version can return "12" instead of "12.0.0" Change-Id: I804cbadb410dc11f566fda122f3082a8607ebb36 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add pkgconfig.sysroot propertyIvan Komissarov2019-05-271-0/+5
| | | | | | | | | | | By default, pkg-config uses qbs.sysroot property which is not desirable in some cases - for example, on macOS, even build for current system is sysrooted to the SDK folder within XCode installation. pkg-config installed with brew resides in /usr/local and can't be found within an SDK dir. For that reason, it make sense to override it manually Change-Id: Ibf779fd1bf0e87189abb2eab23d4e9e153fcca17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* C/C++: Prevent adjacent duplicate libsChristian Kandeler2019-05-272-1/+10
| | | | | | | | It is never necessary to have the same library on the linker command line twice in a row, so we can safely remove such duplicates. Change-Id: Ie6ebe489862702828996fb78533eb4ac400df1cd Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Merge 1.13 into masterChristian Kandeler2019-05-232-4/+10
|\ | | | | | | Change-Id: Ic8e80604deb03e48fe264271de2e0add5023af87
| * Do not override properties that are present in user plistIvan Komissarov2019-05-161-1/+2
| | | | | | | | | | | | Fixes: QBS-1447 Change-Id: Ie03530e960cbcf0ab14a9cb501a169aec311ec1a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix generation of the default Info.plist when building for iOSIvan Komissarov2019-05-161-3/+8
| | | | | | | | | | | | Task-number: QBS-1447 Change-Id: Icdd94b7731d1c84a225c53f780e339f9c7034320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Use validateFunc property in protobuf modulesIvan Komissarov2019-05-223-14/+22
| | | | | | | | | | | | | | | | | | This allows to use more native .base property to call super class validate function. Change-Id: I0f68be8e5823796502c53d719a00825075666b43 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Remove unused property in protobufbaseIvan Komissarov2019-05-201-1/+0
| | | | | | | | | | Change-Id: I52239c01a0e6dff3c22353c3ec4b354fd73a7662 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerIncludePaths for KEIL toolchainDenis Shienkov2019-05-162-0/+17
| | | | | | | | | | Change-Id: I3a70a4a1045444bf053ebf5ac7f32dbe72c827a5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerDefinesByLanguage for KEIL toolchainDenis Shienkov2019-05-152-9/+16
| | | | | | | | | | Change-Id: Id689c4e0290ba83e8755b6787601338a01af07c9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerDefinesByLanguage for SDCC toolchainDenis Shienkov2019-05-141-1/+1
| | | | | | | | | | Change-Id: I934a7bf3679dfda15ef245a9d14e834dc5136861 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerIncludePaths for SDCC toolchainDenis Shienkov2019-05-142-0/+32
| | | | | | | | | | Change-Id: If9143a5af10c842bbb2b6dd08d201f8d9963012f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Use preferred architecture to dump macrosDenis Shienkov2019-05-142-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | .. for SDCC toolchain. The SDCC compiler binary support multiple architectures (aka 8051, z80, and others). So, it is necessary to set a target architecture option before getting the macros. We will take a preferred target architecture from the qbs.architecture property. If this property initially is undefined, then will be returned macros for default compiler architecture (usually it is mcs51). Change-Id: I379ffe90895b62e2786c3ffba2da47b1864da75d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerIncludePaths for IAR toolchainDenis Shienkov2019-05-102-0/+48
| | | | | | | | | | Change-Id: I3b8a3607e1e5c252731dea783acd9c1a0867a127 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Implement cpp.compilerDefinesByLanguage for IAR toolchainDenis Shienkov2019-05-102-6/+9
| | | | | | | | | | | | Change-Id: Id18528b1f6f6a98bec3f877e70c660180078a66c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android: Set a buildable default package nameBogDan Vatra2019-04-291-1/+6
| | | | | | | | | | Change-Id: Ia7edff17b4485d521177e9e87f1dd8d41c91c32a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android: Nuke mips[64] abi supportBogDan Vatra2019-04-263-18/+6
| | | | | | | | | | | | | | Mips' abis were removed long time ago from the Android NDK Change-Id: I8d006b6758ee4faa7f2d697a7252981470d43e1a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Default to the minimum supported NDK API versionBogDan Vatra2019-04-261-2/+10
| | | | | | | | | | | | | | | | | | - android-16 will be used for 32 bit arm ABIs - android-21 will be used for all 64 bit ABIs and x86. x86 has broken wstring support in android-16 to android-19. Change-Id: I38f6e6ec3f16c172cb0b061cfc4cc9efdb8f1700 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-253-177/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | [Android] Allow the user to override version attributesBogDan Vatra2019-04-241-1/+6
| | | | | | | | | | | | | | | | Allow the user to override the android::versionCode and android::versionName from QBS project file. Change-Id: I437294e8f6b52c1072bb1c992d1c7ac5233896c9 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>
* | Fix tests on non-latin systemsIvan Komissarov2019-04-231-0/+3
| | | | | | | | | | | | | | | | Qt Creator uses non-latin letters in path to the build directory in case of ru_RU.UTF-8 $LANG on Linux. Now QBS does handle that correctly. Change-Id: Ifc727b120a5f0ee60972c5e3ed24067426db8df2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add SDCC toolchain supportDenis Shienkov2019-04-102-0/+543
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support for the SDCC compiler: * http://sdcc.sourceforge.net/ As this compiler support multiple architectures, then it is impossible to uniquely identify the current architecture by dumping of the pre-defined macros (because its content depends on a target flag). In this case the cpp.architecture will contains a default architecture (which is dumped with an omitted target flag). To use it with Qt Creator, it is enough to add there a desired Kit with a custom SDCC C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: sdcc To create the SDCC profile it is enougth to use the following command: qbs setup-toolchains --type sdcc <path/to/sdcc/compiler/binary> <profile name> A toolchain type can be omitted; in this case the QBS will tries to detect the toolchain type from the specified compiler name. Also it is possible to auto-detect the SDCC toolchain from the PATH environment using the following command: qbs setup-toolchain --detect At current time are supported only the 8051 (aka MCS51) architecture; other architectures can be added later. Change-Id: I8cc239d62e35472ab667e054a64a1e59c2d548bd Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add support for the clang-cl compilerIvan Komissarov2019-04-105-377/+523
|/ | | | | | Task-number: QBS-1316 Change-Id: Ibf9da364610c260ead088a8990a70c7739d53c39 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Auto-detect Android.ndk.platformChristian Kandeler2019-04-053-21/+51
| | | | | | | ... the same way as Android.sdk.platform. Change-Id: I974fdfd9f56f312cbd39ea155d87694622a9c0b8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* bare-metal: Improve filtering for KEIL compiler outputDenis Shienkov2019-03-191-3/+8
| | | | | | | | Added some additional allowed output patterns (for MCS51 architecture). Change-Id: I68629566ea11c53fd5d4c10ae6e1c4e668a70694 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add missed linker options from IAR for AVR toolchainDenis Shienkov2019-03-121-0/+4
| | | | | Change-Id: I7654eb66ea4a11c9e7e035d3512f2b0601733b28 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Check for valid package name upon package creationChristian Kandeler2019-02-271-1/+10
| | | | | | | | | That's nicer than letting users get a cryptic error message when they try to install their package on the device. Change-Id: Ie5321a28475f879f991c4440c7e64c1c3ebd5a9d Fixes: QBS-1428 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* bare-metal: Add KEIL ARM toolchain support for WindowsDenis Shienkov2019-02-152-112/+290
| | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the KEIL toolchain for the ARM processors family. The KEIL toolchain support only the Windows environment: * http://www.keil.com/support/docs/1456.htm To use it with Qt Creator, it is enough to add there a desired Kit with a custom KEIL C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: keil Tested with the KEIL uVision v5.23 on Windows using the STM32 NUCLEO-F767ZI development board. Change-Id: I93a30f38f9b0e31bf4d1e379a3bdc785e8474ecb 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>
* bare-metal: Add KEIL 8051 toolchain support for WindowsDenis Shienkov2019-02-132-0/+623
| | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the KEIL toolchain for the 8051 processors family. The KEIL toolchain support only the Windows environment: * http://www.keil.com/support/docs/1456.htm To use it with Qt Creator, it is enough to add there a desired Kit with a custom KEIL C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: keil Tested with the KEIL uVision v5.23 on Windows using the Cypress FX2 development kit examples. Change-Id: I2cf59b307762ab95c69bc22eb8989af9b68cd555 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix some missed license headersDenis Shienkov2019-02-133-3/+3
| | | | | Change-Id: I98570fb463bf856a6b6ab2b39fa2bca27b8c0500 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>