aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* doc: Add information about KeilProbeDenis Shienkov2019-02-181-0/+93
| | | | | | Change-Id: Ia8eb378f322c0127729b2531fb3406134623b324 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> 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>
* Doc: mention that the default build configuration is debugMitch Curtis2019-02-181-0/+2
| | | | | | Change-Id: I906810c52ebb02dfce2022feaf76b23fa050f8b4 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@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>
* doc: Rename documentation file 'iarprobe' to 'iar-probe'Denis Shienkov2019-02-151-0/+0
| | | | | | | ... to be more consistent with other probes. Change-Id: I99f8b6d27a0e38f5b473da94a2c3e63a76e491d5 Reviewed-by: Christian Kandeler <christian.kandeler@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>
* Doc: Add documention about IncludeProbeIvan Komissarov2019-02-141-0/+55
| | | | | | Task-number: QBS-1187 Change-Id: Iad5eafd5bc08c907b1a1dd83c78d745ad856d17a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add information about IarProbeDenis Shienkov2019-02-131-0/+93
| | | | | | | Change-Id: Ifb4cc67d1e461953aa3440fc1d59a4d00fb6c8ac Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Add a bit more info on the Probes pageIvan Komissarov2019-02-131-1/+4
| | | | | | | Task-number: QBS-1187 Change-Id: Ic504a8391c0e238e5fe946cb70041e3463a0f4db Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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-137-7/+7
| | | | | 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>
* Add change log for 1.13Christian Kandeler2019-02-131-0/+37
| | | | | Change-Id: Ia09223e5b3f07b9ef69ff0e9d462d5ddf5aa3b7d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* setup-qt: Fix detection for 32-bit MSVCChristian Kandeler2019-02-131-1/+3
| | | | | | | | The installer directory names do not contain the architecture in that case. Change-Id: I072df4260eefff7dd15d90770c73e1187e7f72cc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Set the default platform toolset for VS 2019 to v142Joerg Bornemann2019-02-121-3/+8
| | | | | Change-Id: I1fb773d9aaa527f4bead263626c604a47d9f4568 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Rename pathprobe.qdoc to path-probe.qdocIvan Komissarov2019-02-121-0/+0
| | | | | Change-Id: I025c9f7bc082b6566b7e4fe658d22a6024549e76 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Detect Qt via a module providerChristian Kandeler2019-02-1245-2593/+1906
| | | | | | | | | | | | | | | | | 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>
* Doc: Add information about FrameworkProbeIvan Komissarov2019-02-111-0/+60
| | | | | | | Task-number: QBS-1187 Change-Id: Id53b6dbd33a4999d409c713035acb460831eff65 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Doc: Add information about BinaryProbeIvan Komissarov2019-02-111-0/+85
| | | | | | | Task-number: QBS-1187 Change-Id: I6a97d9f7f70462996a352f7acef8e69f690a37bf Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Module providers: Always remember that a provider was runChristian Kandeler2019-02-111-2/+6
| | | | | | | | ... even if it did not succeed. Otherwise, other products will try again, even though we know it won't succeed. Change-Id: I6c4f14df33ecbc9b38ec8cae7e1c2d6bfc99816a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Module providers: Fix some change tracking problemsChristian Kandeler2019-02-1112-32/+65
| | | | | | | | | | | - We must not remember our temporary files. - We need to use a different reference time stamp for the created modules. - Collecting the results of File.exists() & friends can lead to false positives, so we disable it for now. Change-Id: Id64685b510606f1991e83eb825c36a1b3ec4a4e1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Clarify the meaning and usage of the build configuration parameterRichard Weickelt2019-02-113-12/+37
| | | | | | | | | | | | The documentation for the build configuration parameter was a bit confusing. It was also not explained that parameter assignments before the first occurrence of config are global. This patch explains config in more detail and relates it to qbs.configurationName and qbs.buildVariant. Task-number: QBS-1425 Change-Id: I478f7228aaa0696149f937599b89f785a65c6717 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Document property access in modulesRichard Weickelt2019-02-041-9/+86
| | | | | | | | | | When implementing a module, it is good to know what possibilities exist to access properties. The documentation was a bit vague here. This commit lists all of them and gives some examples. Task-number: QBS-1420 Change-Id: Ia791371204f67ff946e9c73a170760027129e41d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add detailed information about profilesRichard Weickelt2019-01-305-22/+61
| | | | | | | | | | | | | The documentation was missing essential inforation about the concept of profiles. This is especially important for beginners. Although profiles would deserve a page of its own, I decided to extend the configuring page because a lot of useful information was already there. Task-number: QBS-1386 Change-Id: Ia9c33eb3babcfe902b55583b15db9c4a9ecf87a4 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Clarify documentation of qbs.enableDebugCodeAlexandru Croitor2019-01-291-1/+14
| | | | | | Change-Id: I441acf3b494756b0c123383a68f50bed37c6e6cb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt: Allow users to explicitly tag files as mocableChristian Kandeler2019-01-298-1/+80
| | | | | | | | | This is helpful for declaring a QObject-derived class via a macro, in which case the moc scanner will not help. Fixes: QBS-1410 Change-Id: I19ee30eac670228686b5528888159220cf39abd3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix page navigation links for Target PlatformsRichard Weickelt2019-01-291-3/+3
| | | | | | | | The user manual defines a strict navigation flow. The "Target Platforms" document was added only recently, but it wasn't properly integrated. Change-Id: I69edb60fddba0f012d25dce5a91ed746d54abe87 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* ModuleLoader: Do not validate property bindings in non-present modulesChristian Kandeler2019-01-241-0/+21
| | | | | | | | | | The check for the "not-present" condition was not thorough enough: If a module was successfully loaded, but its validate script failed, then we'd still check property assignments if they happened from within a higher-level module instance. Change-Id: I9d7281eb5603deaa04db008ab9fc340847d83151 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-2352-44/+1129
| | | | | | | | | | | | | | | | | | | | | | 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-195-0/+536
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix outdated documentationChristian Kandeler2019-01-181-6/+6
| | | | | | | Configuration names must be prefixed with "config:" these days. Change-Id: I6e858caacc3e2ddad20fd5ba980848fafeb01928 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add recursive dependency scanning of GNU ld linkerscriptsOla Røer Thorsen2019-01-186-12/+156
| | | | | | | | | | | | | | 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>
* Do not ignore file dependencies in the Scanner itemChristian Kandeler2019-01-187-18/+32
| | | | | | | We used to look only at artifacts when scanning recursively. Change-Id: I39f968c05dd3e6af362bf3bb98380814b01de172 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* C++ scanner: Register for rc filesChristian Kandeler2019-01-175-7/+29
| | | | | | | | Windows resource files can have #include statements. This was either overlooked from the beginning or we broke it at some point. Change-Id: I3483e8caf352f557768429cf3c4f9b3293fec38d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Scanner item: Do not re-use the searchPaths value for other inputsChristian Kandeler2019-01-1512-3/+73
| | | | | | | | | | | For the C++ scanner, the search paths depend on module properties, not on the actual input file. This assumption does not generally hold for Scanner items, which was not taken into account when this feature was originally introduced. As a result, the first input to get scanned by a Scanner item erroneously provided the search paths for all others. Change-Id: I0159d826dac1f5605494d54cfe96fe468044ca34 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix buildChristian Kandeler2019-01-141-1/+1
| | | | | | | Amends 893b4dc56c. Change-Id: If4e5216bf24c97773c3c58983e3d4caccaac70ff Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Qt support: Use gold linker if Qt is configured that wayChristian Kandeler2019-01-1414-0/+46
| | | | | | | Fixes: QBS-1421 Change-Id: I1f6d749eba38c9a4caa60341f19ee5e89e89d28a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Darwin support: Work around issue with canonical pathsChristian Kandeler2019-01-112-2/+13
| | | | | | | | | | | 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>
* Merge 1.12 into masterChristian Kandeler2019-01-113-2/+6
|\ | | | | | | Change-Id: Id535625f198f10a920f32e198d39b38d46b35668
| * ModuleLoader: Fix possible crash in verbose mode1.12Christian Kandeler2019-01-071-2/+4
| | | | | | | | | | | | | | | | The assumption in the code that a value is always a JSSourceValue is not (anymore?) true. Change-Id: Ie1056913d4817776f5ce483f4fb0f60144cda9c6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Make setup-toolchains and setup-android behave like setup-qtChristian Kandeler2018-12-182-0/+2
| | | | | | | | | | | | | | | | | | | | | | ... 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>