aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs
Commit message (Collapse)AuthorAgeFilesLines
* Add Visual Studio 2019 support1.13Joerg Bornemann2019-06-071-1/+1
| | | | | | Fixes: QBS-1451 Change-Id: I644835cf8ce18d546e6c8e2c75f689766456555d Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Qt Support: Properly handle host libsChristian Kandeler2019-05-231-1/+13
| | | | | | | | | | We did not take into account that these might be located in a different place than the target libs. Change-Id: I2c27b6be6c8962416f1c062cd1d51ebed45f1796 Fixes: QBS-1445 Reviewed-by: Ola Røer Thorsen <ola@silentwings.no> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Qt Support: Fix dependency de-duplicationChristian Kandeler2019-05-231-10/+12
| | | | | | | | | | | | This functionality broke completely in c4e60ed828, which went unnoticed because it turned into a no-op rather than causing an error. As a result, Qt libraries tended to appear more than once on the linker command line. Task-number: QBS-1441 Change-Id: Ic2634b4501f0360a1adb13aa847e34e9d38674f7 Reviewed-by: Ola Røer Thorsen <ola@silentwings.no> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* 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-162-4/+9
| | | | | | Task-number: QBS-1447 Change-Id: Icdd94b7731d1c84a225c53f780e339f9c7034320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix building iOS-simulator apps when qbs.architecture is undefinedIvan Komissarov2019-05-071-1/+1
| | | | | | | | | QtCreator does not set the qbs.architecture property for the ios- simulator and the condition check for the Qt modules fails. Task-number: QBS-838 Change-Id: I39fe4ad75d3261a6b83f81bf0593ee9445bcefd8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt: Do not link static plugins into static librariesChristian Kandeler2019-05-073-3/+8
| | | | | | | | | Plugins should only be linked into applications and shared libraries. Change-Id: I95adc3f1f1ec8ea512e4166e78be1d9c5abb6745 Fixes: QBS-1441 Reviewed-by: Ola Røer Thorsen <ola@silentwings.no> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix reading *.prl file in qml.jsIvan Komissarov2019-05-021-1/+4
| | | | | Change-Id: Iebe425c3e10be927666dd19d3be86bd30d8a43cd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>
* 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-233-0/+191
| | | | | | | | | | | | | | | | | | | | | | 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>
* Fix detecting path to the MacOSX.platformIvan Komissarov2018-11-051-2/+5
| | | | | | | | It was incorrectly detected by appending OS suffix which wrong as there is no OSX Simulator Change-Id: I19e8b06f51e65a897eae3cc018e994ed696b1d7e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Initialize the multiplexing properties to empty listsChristian Kandeler2018-11-021-3/+3
| | | | | | | | ... rather than leaving them undefined. There is existing code that relies on these properties being a valid array. Change-Id: I01252c1494088cac2006e590ff73ea18e63bbe40 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* qbs module: Do not set default values for multiplexing propertiesChristian Kandeler2018-10-311-21/+2
| | | | | | | | | | We cannot know whether these values are what the user wants, or even whether they will work in a given environment. This violates the principle that modules should only pre-populate list properties if they are known to be correct under all sane circumstances. Change-Id: I81ba53fdb619639324a0f54d289d1183c909c4cb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: Convert to new-style property access syntaxChristian Kandeler2018-10-191-6/+4
| | | | | Change-Id: Ie8a6972b5daf5cd1ef98bde65ed4db856ad4a735 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: Enable building apps with native code and no multiplexingChristian Kandeler2018-10-192-2/+4
| | | | | | | | | | | Until now, we needed to either put the native part into its own product or use multiplexing with the "APK product" serving as the aggregate. Now it is also possible to use a single product without multiplexing, which is a more natural approach in the case where there is only one architecture. Change-Id: I976168c99f75ad8e4940ac61f957c64ad29f5f5c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: Update compiler flagsChristian Kandeler2018-10-151-31/+6
| | | | | | Fixes: QBS-990 Change-Id: I185890808af1839a23c1551fe5554be40822561b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>