aboutsummaryrefslogtreecommitdiffstats
path: root/share
Commit message (Collapse)AuthorAgeFilesLines
* Android: add Qt.android_support.extraLibsBogDan Vatra2019-05-021-0/+10
| | | | | | | extraLibs are needed to add OpenSSL support to Qt apps. Change-Id: Ib91f593c0be7d9a689fdc6c0537749353f3164eb 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-263-7/+11
| | | | | | | | | - 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-254-191/+65
| | | | | | | | | | | | | | | | - 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>
* Use LLVM toolchain starting with NDK r19+BogDan Vatra2019-04-241-6/+14
| | | | | | | | Starting with NDK r19+ llvm toolchain has all the tools we need and gcc toolchain will be removed in future versions. Change-Id: Ifc88d4dbf779fd39950f23a56191e61c9369a432 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>
* Merge 1.13 into masterChristian Kandeler2019-04-161-32/+27
|\ | | | | | | Change-Id: Ia8cf58fc81c2567bc112eb706fa595a1def9dede
| * Qt support: Fix detection of deployment target for Apple platformsv1.13.0Christian Kandeler2019-04-081-32/+27
| | | | | | | | | | | | | | | | | | | | | | In Qt 5.12, the deployment target information has moved from qmake.conf into an included file, so let's expand the includes before looking for the respective line. Fixes: QBS-1434 Change-Id: I174c03cf227f319e33f484e82735d7ed550c2b11 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | bare-metal: Add SDCC toolchain supportDenis Shienkov2019-04-103-0/+605
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-106-377/+611
|/ | | | | | Task-number: QBS-1316 Change-Id: Ibf9da364610c260ead088a8990a70c7739d53c39 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Auto-detect Android.ndk.platformChristian Kandeler2019-04-055-22/+58
| | | | | | | ... 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>
* PkgConfigProbe: Check for package version in an extra callChristian Kandeler2019-03-121-7/+12
| | | | | | | | | The --*-version arguments cannot be mixed with --cflags and --libs. Change-Id: I6326fd34f4698cb91cdaa592d7843bd2fdeaa7cf Fixes: QBS-1430 Reviewed-by: Kai Dohmen <psykai1993@googlemail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@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: Fix architecture name for 8-bit AVR mcu'sDenis Shienkov2019-02-191-3/+0
| | | | | | | | | | | | | | The pre-defined '__AVR_ARCH__' macro just defines a machine specific type of a core: https://www.microchip.com/webdoc/AVRLibcReferenceManual/using_tools_1using_avr_gcc_mach_opt.html Each core may differ in the size of a RAM, ROM, FLASH, presence of an additional instructions or a periphery, but an architecture always is 8-bit RISC AVR. Change-Id: I39b12e6b4cf4a24a1c5c27c61c31a6e01437acea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add support of the AVR32 architecture for GCC compilerDenis Shienkov2019-02-191-0/+2
| | | | | Change-Id: I7a3c0f8f7df793f23a5411d39a6383d232ddedf6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Work around regression in Qt 5.12.1Christian Kandeler2019-02-181-0/+6
| | | | | | | | | | The androiddeployqt tool now requires an entry for the C++ standard library in the JSON file, even though that is not needed in auxiliary mode. Fixes: QBS-1429 Change-Id: I50e3963d8eda6a67387f79d63df1db6e08955ced Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt provider: Make sure not to invoke qtchooser directlyChristian Kandeler2019-02-181-2/+7
| | | | | | | | In some Linux distributions, qmake is a soft link to qtchooser, which only behaves like qmake if invoked via that name. Change-Id: I6705a81f6a4dfdda5fd3f1e16a63318a4b772084 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt provider: Fix plugin map setupChristian Kandeler2019-02-181-1/+1
| | | | | | | Another JavaScript typo. Change-Id: I805136417134d03ec25c32cd75a749df32279e71 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt provider: Check exit code of qmake -query callChristian Kandeler2019-02-181-0/+4
| | | | | | | | | We relied on an exception getting thrown for failed process, but a non- zero exit code is not technically an error, so we have to check for it explicitly. Change-Id: Ibf13ee3022f7ca3753d63be8251c047077dbe240 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* bare-metal: Add KEIL ARM toolchain support for WindowsDenis Shienkov2019-02-153-113/+293
| | | | | | | | | | | | | | | | | | | | | 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>
* Qt provider: Handle file paths with spaces in prl filesChristian Kandeler2019-02-141-3/+2
| | | | | | | | This is relevant now that Qt puts full paths into prl files, rather than just file names. Change-Id: I3535653eb8e20493a48d78fb2ac0619a96ed64c6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix detection of static QtChristian Kandeler2019-02-141-3/+3
| | | | | | | Amends c4e60ed828. Change-Id: Ied6753def5d5576b35709f6775e2b4148a005b93 Reviewed-by: Joerg Bornemann <joerg.bornemann@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-133-0/+688
| | | | | | | | | | | | | | | | | | | | | 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-136-6/+6
| | | | | Change-Id: I98570fb463bf856a6b6ab2b39fa2bca27b8c0500 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Remove "noexecstack" assembler optionChristian Kandeler2019-02-131-1/+1
| | | | | | | | | It's redundant (we also specify this when linking), and it can cause warnings with clang. Fixes: QBS-1424 Change-Id: I71a9331ac0385c53266ef702d192b4a95d1055ba Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Detect Qt via a module providerChristian Kandeler2019-02-1220-0/+3622
| | | | | | | | | | | | | | | | | 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>
* bare-metal: Add IAR AVR toolchain supportDenis Shienkov2019-01-233-0/+30
| | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the AVR 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 AVR v7.20.1 on Windows using the simple projects samples which are comes with the default IAR installer. Change-Id: I4ba65e0a753f8703764551c62d630849ff86d91f Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add IAR 8051 toolchain supportDenis Shienkov2019-01-233-24/+118
| | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the 8051 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 8051 v10.10.1 on Windows using the simple projects samples which are comes with the default IAR installer. Change-Id: I5ef1cc047c27a7fce4a6841331a67e8dd0f0453e Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Introduce module providersChristian Kandeler2019-01-234-0/+200
| | | | | | | | | | | | | | | | | | | | | | If a dependency is not found, we now search for a matching module provider that can generate one for us. We also provide a generic fall-back provider which uses pkg-config to locate the dependency (but could be extended to incorporate other methods in the future). This is the most important part of this change for practical purposes, as it makes hundreds of popular libraries available for use in qbs projects without users having to write any boilerplate code. In a future patch, a module provider could also be used to implement the functionality of the qtprofilesetup library, relieving users of the need to create a profile for building Qt applications. [ChangeLog] The Depends item now falls back to pkg-config to locate dependencies whose names do not correspond to a qbs module. Fixes: QBS-1107 Change-Id: Ifd4f05c237cf58cd9fe707c3da648d3dbb33e82b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* bare-metal: Remove '--warnings_affect_exit_code' option from IAR compilerDenis Shienkov2019-01-221-1/+0
| | | | | | | | | | | This option says to the compiler to ends with the exit code '1' instead of '0', when the compilation warnings are detected. In this case e.g. the QtC interpret the warnings as the errors, that is wrong. So, we need to remove this compiler option at all. Change-Id: I8b25ae37220527afe3408cbe0743a897364cbf40 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* bare-metal: Link with library dependencies on IAR for ARMDenis Shienkov2019-01-212-0/+70
| | | | | | | | | | | | | | This patch adds the possibility to link the application with an external or dependent libraries. IAR supports linking only with the static libraries for the bare-metal devices. Now it is possible to use the cpp.staticLibraries and cpp.libraryPaths properties, also to use the product's library dependencies via Depends { name: "mylib" }. Change-Id: I5129473dc0353970d060a8c714b2f4b51d1ab4cc Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add IAR EWARM toolchain support on WindowsDenis Shienkov2019-01-193-0/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the ARM processors on Windows host. 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 To specify the target CPU/FPU you need to set the cpp.driverFlags property, like this: cpp.driverFlags: [ "--cpu", "Cortex-M4", "--fpu", "VFPv4_sp" ] Then these flags will be automatically passed to both compiler and assembler. To specify the linker flags you need to set the cpp.driverLinkerFlags property instead of cpp.linkerFlags property, like this: cpp.driverLinkerFlags: ["--vfe"] To add the linker script files you need to set the 'linkerscript' tag, e.g. in the following way: Group { name: "Linker scripts" fileTags: ["linkerscript"] files: ["stm32f407xx_flash.icf"] } Other properties can be used as usual, according to the EWARM compiler documentation. Tested with EWARM v8.20.2, v6.50.3 on Windows using: * STM NUCLEO-F767ZI * STM 32F4DISCOVERY target boards. Change-Id: I3c42eb94051352cb3b7eb5b0768a1dc8bdacabce Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add recursive dependency scanning of GNU ld linkerscriptsOla Røer Thorsen2019-01-181-0/+40
| | | | | | | | | | | | | | Linkerscripts may contain INCLUDE and SEARCH_DIR commands that allows it to include other linkerscripts in a similary way as headers are included in C++. This commit adds a scanner that adds these additional dependencies. [ChangeLog] Added recursive dependency scanning of GNU ld linkerscripts that contain INCLUDE and SEARCH_DIR commands. Change-Id: I7549e27aad4fe7ade2a6a26eba14f66880261077 Reviewed-by: Ola Røer Thorsen <ola@silentwings.no> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Darwin support: Work around issue with canonical pathsChristian Kandeler2019-01-111-1/+3
| | | | | | | | | | | When built with Qt >= 5.12, we pass a canonical output directory to macOS' actool, but amazingly, it somehow manages to list the file paths it created there in the non-canonical version. So we need to re- canonicalize these paths. Fixes: QBS-1417 Change-Id: I2cfcf7cdef0a16a1e69e0320651eabf4f3355307 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* GCC: Make it possible to force the linker variantChristian Kandeler2019-01-071-0/+12
| | | | | | | | | | | | ...via cpp.linkerVariant. [ChangeLog] Added new cpp property linkerVariant to force use of gold, bfd or lld. Task-number: QBS-1421 Change-Id: I98f9d2581515ac8e9c984a2f8d70f4a7a3ab230b Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Rename PathProbe.pathPrefixes and PathProbe.platformPaths propertiesIvan Komissarov2018-12-1017-32/+44
| | | | | | | | | The naming was misleading - prefixes had the same logical meaning as platformPaths, despite the fact completely different PathProbe.pathSuffixes property exists. Change-Id: Ie593b5e03d27de4f8aafed821a3b37cc1b3b0b9e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* MSVC: Fix handling of intermediate objectsChristian Kandeler2018-12-031-1/+2
| | | | | | | Amends 2e830e5e4f. Change-Id: Ifecc822412c481d45121fa7d792e1fb2aa4e2064 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Support big Qt resourcesJoerg Bornemann2018-11-302-5/+15
| | | | | | | | [ChangeLog] Introduced the property Qt.core.enableBigResources for the creation of "big" Qt resources. Change-Id: Ic87aa70132240e67243c1cbe137583a371558261 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix environmentPaths properties typeIvan Komissarov2018-11-221-2/+2
| | | | | | | These are the names of env variables containing paths, not paths itself Change-Id: I9054f4ffa3b3b005ee8ef56f6c43ac53ba4f53ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add protobuf.cpp and protobuf.objc modulesIvan Komissarov2018-11-226-6/+325
| | | | | | | | | | | These modules implement google protobuf support for QBS for c++ and objective-c languages [ChangeLog] Added protobuf support for C++ and Objective-C. Fixes: QBS-563 Change-Id: I4bb7e0bdfc1e09ea26c0cd3d3739a741ff834e5d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Properly support building Qt apps for AndroidChristian Kandeler2018-11-161-2/+12
| | | | | | | | ... via the androiddeployqt tool. Fixes: QBS-991 Change-Id: I4a3abe977fee6a9d1657a4fd6c1b43709429da9f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt support: Allow users to pull in plugins by typeChristian Kandeler2018-11-091-6/+0
| | | | | | | | | | ... and properly set the default values. Fixes: QBS-1409 Change-Id: Ib8f3573fcb48d395d9212ac4b01e5caf910c575f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>