aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/imports/qbs/Probes
Commit message (Collapse)AuthorAgeFilesLines
* baremetal: Improve JS code in IAR module a bitDenis Shienkov2019-08-191-29/+12
| | | | | | | | | | | | * Move an architecture-specific code to a functions in the iar.js file. * Remove the redundant copy-paste code. * Align order for assembler, compiler, linker and archiver flags to the unified form, like: <inputs> <outputs> <defines> <includes> <flags> Change-Id: Ibfdc536f78d1145f6e1190da33f67b0fb7063f05 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* baremetal: Add IAR MSP430 toolchain supportDenis Shienkov2019-08-151-0/+4
| | | | | | | | | | | | | | | | | | 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>
* bare-metal: Add IAR STM8 toolchain supportDenis Shienkov2019-07-261-0/+4
| | | | | | | | | | | | | | | | | | | 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>
* Add PathProbe::candidateFilter propertyIvan Komissarov2019-06-265-13/+15
| | | | | | | | | | | | | | | This property can be used to check if candidate conforms with some conditions. For example, an architecture of a shared library candidate should match the current qbs.architecture. Also, this will allow to implement support for the "text based stub libraries" (yaml files that point to a real library in a system) on macOS - instead of checking real file architecture, it should be read from .tbd file Change-Id: Ie84a3e70d883dec949440358e2f08213a8501982 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Allow PathProbe to search multiple filesIvan Komissarov2019-06-255-54/+119
| | | | | | Change-Id: I6ae2dd130cbafb03e51bc6e8e8a3e262d6d45fc6 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not use pathSuffixes in IncludeProbeIvan Komissarov2019-06-031-1/+4
| | | | | | | | | | | This is wrong - on Windows, INCLUDE variable already contains /include suffix. This also makes IncludeProbe consistent with LibraryProbe. Change-Id: I166de8d4274842743886b0e234fff48688fd4c44 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerIncludePaths for KEIL toolchainDenis Shienkov2019-05-161-0/+6
| | | | | Change-Id: I3a70a4a1045444bf053ebf5ac7f32dbe72c827a5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerDefinesByLanguage for KEIL toolchainDenis Shienkov2019-05-151-1/+16
| | | | | Change-Id: Id689c4e0290ba83e8755b6787601338a01af07c9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerDefinesByLanguage for SDCC toolchainDenis Shienkov2019-05-141-0/+6
| | | | | Change-Id: I934a7bf3679dfda15ef245a9d14e834dc5136861 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerIncludePaths for SDCC toolchainDenis Shienkov2019-05-141-0/+4
| | | | | Change-Id: If9143a5af10c842bbb2b6dd08d201f8d9963012f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Use preferred architecture to dump macrosDenis Shienkov2019-05-141-1/+2
| | | | | | | | | | | | | | .. 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-101-0/+7
| | | | | Change-Id: I3b8a3607e1e5c252731dea783acd9c1a0867a127 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerDefinesByLanguage for IAR toolchainDenis Shienkov2019-05-101-1/+16
| | | | | | Change-Id: Id18528b1f6f6a98bec3f877e70c660180078a66c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Default to the minimum supported NDK API versionBogDan Vatra2019-04-261-4/+0
| | | | | | | | | - 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>
* bare-metal: Add SDCC toolchain supportDenis Shienkov2019-04-101-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-101-0/+88
| | | | | | Task-number: QBS-1316 Change-Id: Ibf9da364610c260ead088a8990a70c7739d53c39 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Auto-detect Android.ndk.platformChristian Kandeler2019-04-052-1/+7
| | | | | | | ... the same way as Android.sdk.platform. Change-Id: I974fdfd9f56f312cbd39ea155d87694622a9c0b8 Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
* bare-metal: Add KEIL ARM toolchain support for WindowsDenis Shienkov2019-02-151-1/+3
| | | | | | | | | | | | | | | | | | | | | 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>
* bare-metal: Add KEIL 8051 toolchain support for WindowsDenis Shienkov2019-02-131-0/+65
| | | | | | | | | | | | | | | | | | | | | 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>
* bare-metal: Add IAR AVR toolchain supportDenis Shienkov2019-01-231-0/+4
| | | | | | | | | | | | | | | | | | | 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-231-3/+10
| | | | | | | | | | | | | | | | | | | 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>
* bare-metal: Add IAR EWARM toolchain support on WindowsDenis Shienkov2019-01-191-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Rename PathProbe.pathPrefixes and PathProbe.platformPaths propertiesIvan Komissarov2018-12-1012-26/+38
| | | | | | | | | 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>
* 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-222-6/+66
| | | | | | | | | | | 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>
* Merge 1.12 into masterChristian Kandeler2018-10-121-0/+2
|\ | | | | | | Change-Id: I96c735aeda89e02f1fa9107ecfc10ebf4b554dbc
| * MSVC: Add support for the Visual Studio 2017 Build ToolsChristian Kandeler2018-10-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This entails: - Auto-detection: The Build Tools no longer have an entry in the registry; use the vswhere tool instead. - Unset the VSINSTALLDIR environment variable before calling the vcvarsall.bat script, as this variable can confuse the msbuild.bat sub- script if it is set. - Look for the base include directory two levels above the directory under which cl.exe is located. Change-Id: Id8f7976e5f41015e59850d3ed68fa81b6ce701a2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Remove the base module import from shared imports and modulesJoerg Bornemann2018-06-2220-23/+0
|/ | | | | Change-Id: I5270e033dc41b5bd76a417099514c69cc073008b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.10 into 1.11Christian Kandeler2018-01-261-9/+13
|\ | | | | | | Change-Id: Ib49f863008a9c4a3b8956686de019e2f133c244f
| * Fix detection of Android SDK on WindowsJake Petroules2018-01-251-9/+13
| | | | | | | | | | | | | | Task-number: QBS-1282 Change-Id: If15e1ad616c6ffcdc03f62d872c512fd52c844d3 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add better module validation for Android SDK and NDKJake Petroules2018-01-252-0/+2
| | | | | | | | | | | | | | | | Users now get more friendly error messages when the SDK and/or NDK are not installed. Change-Id: Icfc438ed16b88aea190bf766ddc58b26b0512121 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix GccBinaryProbe for mingwChristian Kandeler2017-12-221-0/+2
| | | | | | | | | | Change-Id: I1af7bfa2583417245235363ccc7a7a5fe5f25304 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Automatically detect Windows cross-compilers when building for WindowsJake Petroules2017-12-211-1/+35
| | | | | | | | | | | | Task-number: QBS-1247 Change-Id: I604ba374378197a6a76cc0367f2511422c345791 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Move the GCC-like compiler binary probe into a dedicated Probe typeJake Petroules2017-12-191-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | This allows the toolchain prefix to be extracted from the probe itself, which is preparation for refactoring which determines the prefix automatically if it is left unspecified. Right now it's obviously always going to be empty string, or equal to _toolchainPrefix. A subsequent commit will make use of it. Change-Id: I0f44c4a9d401e75ba48f3e499a23940954a8b619 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Validate the compiler's target platform as well as arch and endiannessJake Petroules2017-12-191-0/+2
| | | | | | | | | | | | | | This helps to block inappropriate host compilers when cross compiling. Change-Id: Ied22fce094fdb726babea4e94a7ef1d78afc9a98 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Produce friendlier error messages when the Android SDK/NDK are missingJake Petroules2017-11-292-0/+4
| | | | | | | | | | Change-Id: I4a447d3c18e79523441d3f7103827db55b46a851 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add support for creating .ico and .cur files using icotool (icoutils)Jake Petroules2017-11-151-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | ImageMagick has support for these formats but is not suitable because it does not have the ability to set cursor hotspots. This patch is preparation towards QBS-73. [ChangeLog] Introduced the ico module for creating .ico and .cur files Change-Id: I9a917b3ee5983bc59fba1a5740540299d8d9708f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Give BinaryProbe a more sensible set of default paths on UnixJake Petroules2017-11-061-1/+1
|/ | | | | Change-Id: I344e76e405690eb27fdecc719f111d5bed8a44aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Only add /System/Library/Frameworks to default compiler path on DarwinJake Petroules2017-10-231-1/+2
| | | | | Change-Id: Ia9ce8fbe4120d4dac562083b7181dce98128db48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Split off JdkVersionProbeJoerg Bornemann2017-09-072-6/+47
| | | | | | | | ...because detecting the JDK's location and version in one probe makes it impossible to set java.jdkPath in a profile. Change-Id: Ifc2c87f05021551ef4eb3b3d42785f116cd3c551 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Remove superfluous imports from JdkProbeJoerg Bornemann2017-09-071-3/+0
| | | | | | | The imports are in the .js file these days. Change-Id: I58a1f3eb96217179e47236e57270e2a09b0cc9ac Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix Android NDK probe for NDKs older than r11Joerg Bornemann2017-08-301-10/+25
| | | | | | | | | Make sure we continue after the r11 check fails. Fix the file extension of RELEASE.TXT. Fix the regular expression that failed for "r10e-rc4 (64-bit)". Change-Id: I77806350b6951ca49dfb84b5cb4369e788eeaae9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix MSVC environmentJoerg Bornemann2017-08-141-1/+1
| | | | | | | | Return the right environment from the MsvcProbe. This amends commit d0404591. Change-Id: Iaedb862a07cd9f0c2966ed21714ee7df30927d17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Automatically determine built-in compiler definesJake Petroules2017-08-112-9/+52
| | | | | | | | This provides users with access to the full list of macros defined by the MSVC, GCC, Clang, or MinGW compiler in use. Change-Id: I6e7f6841bbc18aed13958724b268283d97b17320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Re-introduce endianness propertyJake Petroules2017-06-291-0/+10
| | | | | | | | | | | | | 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>
* Move the compiler version detection into a separate ProbeJake Petroules2017-06-292-14/+68
| | | | | | | | | | | | | | | | The compiler version is needed in the GccProbe itself (to determine which compiler flags are available to use) so it cannot be done in a single probe. This change will be taken advantage of in a subsequent patch. This patch also fixes a silent failure that caused the wrong compiler flags to be used in the GccProbe due to the compiler version being undefined at the point where feature checks based on the compiler version were being made... specifically, that the -target flag was assumed to be unavailable due to the missing compiler version. Change-Id: I13626c37f3fd21b5b8b6632714ba9dd9373b7838 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix nodejs/typescript probes when the Node interpreter is not in PATHJake Petroules2017-06-143-6/+30
| | | | | Change-Id: I9302a631450a43c25b5cf9bac6b5299f2b728683 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.8 into masterChristian Kandeler2017-06-095-16/+26
|\ | | | | | | Change-Id: I2fcb2113a24c8807467aa03aa3e7590d53761706