aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/imports/qbs/Probes
Commit message (Collapse)AuthorAgeFilesLines
* Add Conan module providerKai Dohmen2024-05-301-18/+4
| | | | | | | | | | | The Conan module provider will extract information from generated conanbuildinfo.json files and create a module for every dependency. It also extract some useful information like the rootpath to the installed package and environment variables defined by required packages. Fixes: QBS-1665 Change-Id: I46f34667564c73f74feb2de2609d12d22a703f85 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '2.3' into masterIvan Komissarov2024-05-031-0/+7
|\ | | | | | | Change-Id: Idca4efc5d0b44ceab159a8a287e125c85b57ae29
| * Qt: fix minimum macOS/iOS versions for Qt 6.7.1Ivan Komissarov2024-05-021-0/+7
| | | | | | | | | | Change-Id: I3338a3b6dbb669abab63f94c5ed9e9440a4de04d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Use BinaryProbe in the pkgconfig providerRaphael Cotty2024-05-032-24/+4
|/ | | | | | | | This allows to re-use the code in the Probe rather than iterate over PATHS manually Change-Id: Ibc6da2b141329033ad1c3fc0f9f22a8170df74b3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove qbspkgconfig.mergeDependenciesChristian Kandeler2024-01-292-7/+2
| | | | | | | As promised. Change-Id: I2e13d220057225f1afcad0cab1e5e049313cae2b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* qbspkgconfig: do not run qmake when not requestedIvan Komissarov2024-01-222-9/+7
| | | | | | | | | | | | Fix the probe by returning only paths to qmake which are later passed to real Qmake probe which checks if it should be run (e,g. for Qt modules). This amends d99256dd79460628aafb5fa34a8dde7761ff7b1c. Fixes: QBS-1779 Change-Id: Ie901befcc74713a41258ba18c436435fe50cfb4d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix qbspkgconfig Qt provider in case there is no QtIvan Komissarov2024-01-151-1/+1
| | | | | | | | | | | Our tests did not cover the case when there is obviously no Qt that come from this provider. Add this case and check that we only get the error about missing module but no error come from the provider. Fixes: QBS-1777 Change-Id: Id3e80fd54e1519c91be37346276fd781d9f81b0a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* protobuf: Usable without qbspkgconfigproviderBjörn Schäpers2024-01-111-0/+6
| | | | | | | | | | | | | | | | It only fails with "Can't find cpp protobuf runtime. Make sure .pc files are present" which is not helpful, since they are present. Additionally remove the grpcpp to grpc++ mapping in both pkg-config probes. This kind of amends 1772df50a3bacd91ba8125ececf774aa0e6311f9, I readded the tests. Task-number: QBS-1663 Change-Id: I73b7b76a66cc2b8eea5dddd57e5221715b6e6014 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qbspkgconfig: Add support for the definePrefix optionIvan Komissarov2024-01-102-2/+10
| | | | | | | | | | | | | | | | On windows/msys, it is crucial to use autodetection for package paths - otherwise, Qbs is not able to detect e.g. protobuf package. The pkg-config has the --define-prefix switch that overrides the ${prefix} variables on the package with one based on the .pc file locaiton. Implement similar option and set it to true on Windows. Also fix setting sysroot to avoid duplication of sysroot in paths when prefix is autodetected. Change-Id: I2754e48a96cb2e5f01ecace616188782cb5b0d7a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qbspkgconfig: Fix issues with msys/mingwIvan Komissarov2023-12-121-3/+8
| | | | | | | | | The pkgconf in MSYS reports relative paths which we treat as relative to the binary. Also, on windows, ';' is used as a separator between paths. Change-Id: I3425ce896e42f87da0cab3f8f06892e28d4e5727 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make Qt and qbspkgconfig providers non-eagerIvan Komissarov2023-10-264-0/+1486
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To avoid doing unnesessary work we make all providers non-eager, meaning they instantiate modules only when requested. Also, now all providers behave in the same way, allowing to drop eager providers and simplify code. Qt provider was split into a Probe, Provider responsible for setting up a single module and a bunch of util functions. Resolving Qbs, 3 runs per configuraion, best of each: === before === Starting activity 'Resolving project for configuration default'. Setting up Qt at '/Applications/Qt/5.15.2/clang_64/bin/qmake'... Qt was set up successfully. Activity 'Resolving project for configuration default' took 16s, 948ms. Project file loading and parsing took 484ms. Preparing products took 1ms. Setting up Groups took 77ms. Setting up product dependencies took 3s, 296ms. Running module providers took 1s, 50ms. Instantiating modules took 0ms. Merging module property values took 2ms. Running Probes took 6s, 619ms. 598 probes encountered, 26 configure scripts executed, 569 re-used from current run, 0 re-used from earlier run. Property checking took 60ms. Property evaluation took 1s, 293ms. Resolving groups (without module property evaluation) took 1s, 801ms. Starting activity 'Setting up build graph for configuration default'. Activity 'Setting up build graph for configuration default' took 111ms. Starting activity 'Storing build graph'. Activity 'Storing build graph' took 203ms. Setting up imports took 130ms. === after === Activity 'Resolving project for configuration default' took 16s, 400ms. Project file loading and parsing took 413ms. Preparing products took 0ms. Setting up Groups took 74ms. Setting up product dependencies took 3s, 14ms. Running module providers took 815ms. Instantiating modules took 0ms. Merging module property values took 2ms. Running Probes took 7s, 4ms. 611 probes encountered, 27 configure scripts executed, 581 re-used from current run, 0 re-used from earlier run. Property checking took 62ms. Property evaluation took 1s, 276ms. Resolving groups (without module property evaluation) took 1s, 728ms. Starting activity 'Setting up build graph for configuration default'. Activity 'Setting up build graph for configuration default' took 94ms. Starting activity 'Storing build graph'. Activity 'Storing build graph' took 202ms. Setting up imports took 97ms. The overall time is about the same. As for the pkgconfig provider, resolving GRPC example is about 2 times slower (479ms -> 927ms), but there's room for optimizations: === before === Activity 'Resolving project for configuration default' took 2s, 257ms. Project file loading and parsing took 288ms. Preparing products took 1ms. Setting up Groups took 23ms. Resolving products took 2s, 232ms. Property evaluation took 55ms. Resolving groups (without module property evaluation) took 8ms. Setting up product dependencies took 1s, 339ms. Running module providers took 479ms. Instantiating modules took 13ms. Merging module property values took 20ms. There were 0 product deferrals with a total of 2 products. Running Probes took 715ms. 32 probes encountered, 15 configure scripts executed, 15 re-used from current run, 0 re-used from earlier run. Property checking took 4ms. === after === Activity 'Resolving project for configuration default' took 2s, 673ms. Project file loading and parsing took 600ms. Preparing products took 0ms. Setting up Groups took 17ms. Resolving products took 2s, 660ms. Property evaluation took 53ms. Resolving groups (without module property evaluation) took 7ms. Setting up product dependencies took 1s, 864ms. Running module providers took 927ms. Instantiating modules took 14ms. Merging module property values took 21ms. There were 0 product deferrals with a total of 2 products. Running Probes took 746ms. 188 probes encountered, 16 configure scripts executed, 170 re-used from current run, 0 re-used from earlier run. Property checking took 3ms. Change-Id: Ic1727d937185a8aed4514e56d46e69f53ed0fbc6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add executableSuffix to the FileInfo serviceRaphael Cotty2022-08-081-2/+1
| | | | | Change-Id: I86c24c6ad1ea0daf298b71501a6719c8b2650c1c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix Android build-tools detection, if it was installed via cmdline-toolsMax Bespalov2022-06-231-13/+9
| | | | | | | | | | | | | | | The modern way to install android packages is to use cmdline-tools. The old way was to use SDK tools, but now it is deprecated (see https://developer.android.com/studio/releases/sdk-tools). There is a code in AndroidSdkProbe which looks for android executable in SDK tools folder to prove, that the folder does contain Android SDK. But if you use cmdline-tools, there is no folder "tools" anymore. The probe fails to find build tools. The fix is to look for build-tools directory. Fixes: QBS-1700 Change-Id: Iad92664ba07d034ba365e8b7b178cd47f5d3f187 Reviewed-by: Raphaël Cotty <raphael.cotty@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix Xcode support for 13.3Christian Kandeler2022-04-041-1/+1
| | | | | | | | | | | Some .xcspec files got new names and/or locations. Also, we now fully expand the values of property list variables before applying formatters. Presumably this used to work by accident because a simple look-up never produced a value in need of expansion. Fixes: QBS-1693 Change-Id: Ie66ec69042cdceede9d5ddec7c17de1c3c25a167 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Add test to check toolchain probesDenis Shienkov2022-02-211-1/+1
| | | | | | | | | | | | | | | | Right now we don't have tests that could check the correctness of the properties returned by toolchain probes. For example, such as `architecture`, `targetPlatform`, `endianness` and so forth. The number of returned parameters depends on the type of toolchain. This patch adds a test for the probe for the `watcom` toolchain and can be used as a template for adding the tests for other probes in the future. Change-Id: I5ebda0deb7538f746406f5b0925bdd60fdb4c3fb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for other platforms supported by Digital MarsDenis Shienkov2022-02-171-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * Windows - 16 bit. Also, more specifically, the target is controlled by the `cpp.extenderName` property, which is the DOS extender to use. The Digital Mars support the following DOS extenders: * Rational 16 bit DOS Extender * ZPM 16 bit DOS Extender * DOSX 32 bit DOS Extender * Pharlap 32 bit DOS Extender which have the following names `dosr`, `dosz`, `dosx`, `dosp`. The user can set any of the desired values in the `cpp.extenderName` property (also this property can be empty that means no any extender is used). Right now the `qbs-setup-toolchain` utility creates all possible supported profiles with the required pre-configured properties: Profile 'dmc-8_57_0-windows-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-windows-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosx-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosp-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosr-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosz-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dos-x86_16' created for 'C:/dm/bin/dmc.exe'. Compiling with DOS extenders requires additional external utilities and libraries (depending on the extender type). Some of them are no longer available at the moment, so the tests in CI are only done for the `dmc-windows-x86`, `dmc-windows-x86_16`, and `dmc-dos-x86_16` profiles. Change-Id: I221d2995900c63605c8552b825bf0c4d55171f5c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for other platforms supported by Open WatcomDenis Shienkov2022-02-091-3/+7
| | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * OS/2 - both 32/16 bit. * Windows - 16 bit. Also all these platforms covered in CI tests. Change-Id: Ie75d9203c50f4d61546b19328992ff0e107d9942 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Configure CI for Digital Mars compilerDenis Shienkov2022-02-081-1/+1
| | | | | | | ... and also as fix the typo in the DmcProbe.qbs file. Change-Id: I2f62b862b900c92be97c6eb6a9b461ac5973b8ea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Long live Open Watcom toolchainDenis Shienkov2022-02-041-0/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds basic support for the Open Watcom toolchain. This patch uses the `owcc` compiler (supplied with the toolchain), which is a wrapper that supports the POSIX standard. Reason is that the native OW compiler and linker has a limitations in the command line arguments (e.g. they have wrong quotes handling and so on). This patch supports both the latest official version v1.9 and also its fork v2.0. Also added the CI autotests for the version v2.0 for the Windows host. These autotests only perform a limited number of tests (only the bare-metal tests) due to the following toolchain limitations: * The toolchain does not have STL support (there seems to be some kind of the partial support in the form of separate legacy STL ports). * The toolchain support something compatible with the C++98 standard. * The toolchain does not support the shared libraries on Linux hosts. These limitations make it impossible or unjustified to reuse most of the available tests (it requires a lot of work). There was also an attempt to set up CI for tests on Linux host, but for some reason the toolchain installer crashes on CI (although it works fine on a local PC with Ubuntu). Change-Id: Iecf76f51f0b09d31a89683f786b9cd7a825f235e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Fix typoIvan Komissarov2022-02-031-1/+1
| | | | | | | | Amends 54ec5e8851f0573beb466ddec2e20a1f3c2b7f7a. Change-Id: Ie527099f16092715b3d11d65e5d6bdbf575bbc64 Reviewed-by: Raphaël Cotty <raphael.cotty@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use Host and FileInfo serviceRaphael Cotty2022-01-3119-56/+59
| | | | | | | | Replace all the possible use of the qbs module that can be replaced by the Host and FileInfo services. Change-Id: I0d6f820bb2577eacd9081ec2df1eb53adf94d50e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Print conan output while ConanfileProbe runsKai Dohmen2021-10-261-3/+18
| | | | | | | | | Sometimes installing dependencies with conan takes multiple minutes. To see what conan does and if somehow conan stopped working the conan stdout and stderr will be printed to commandline. Change-Id: I987ef95b38deecd713dc6b46be0e2641025345c6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Long live Digital Mars toolchainDenis Shienkov2021-07-271-0/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds an experimental support for the Digital Mars C/C++ compiler for Windows: * https://www.digitalmars.com/ This compiler is only distributed for Windows host platform, but allows to create the binaries for Win32, Win16, DOS32 and DOS targets. This patch implements only the Win32 targets and has the following limitations: * Support for precompiled headers is not implemented yet (but which is supported by the compiler). * There is no support for the CI autotests due to the fact that the compiler has the following restrictions: - it needs a separate masm386 assembler. - it needs a special format of DLL library sources (required the DLL main function). - it needs the `kernel32.lib` to be always explicitly linked. - and, maybe other unexpected stuff. The following features are currently supported: * Compiling a source files in the C or the C++ mode. * Compiling the source resource (RC) files. * Creation of an applications (both console and GUI). * Creation of an dynamic (DLL) libraries with its import files. * Creation of a static libraries. Task-number: QBS-1598 Change-Id: I5a6ac05a7e7513a1c6d2403db037c309b0f12b90 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Long live COSMIC toolchain for STM32 ARM architectureDenis Shienkov2021-05-281-0/+87
| | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Right now this patch implements support for ARM architecture for STM32 microcontrollers. But in the future it is simple to extend it and for other architectures (e.g. for STM8, HC08 and so on). Also the COSMIC toolchain has been added to the Github CI. Change-Id: Iabdfd61cc427155117730db46e067004ceb07102 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Allow to specify windowsSdkVersionIvan Komissarov2021-04-192-4/+18
| | | | | | | | | Previously, it was not possible to use older windows SDK version. Fix that by introducing the new property that is passed to vcvarsall.bat Task-number: QBS-1498 Change-Id: Ic526eabb8ff82ddd85c93e90fd20421595a121f4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '1.18'Ivan Komissarov2021-02-193-1/+50
|\ | | | | | | Change-Id: I4e437865514add88558f66420718bc02fb39e41d
| * Xcode: Fix XCode auto-detectionIvan Komissarov2021-01-041-0/+47
| | | | | | | | | | | | | | | | If Xcode is moved to another location, we should use xcode-select -- print-path to find it rather than using hardcoded path. Change-Id: I9b5eba19c9e732e5e9da0322320fb0406249e020 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add more paths to search in Library and Include probesJan Blackquill2020-12-232-1/+3
| | | | | | | | | | | | | | | | | | These paths are used by containerisation systems such as Flatpak; searching in these by default makes building Qbs applications in Flatpak et. al easier Change-Id: I438ba1ffd66845ac1331791428135eb70105ff34 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Implement codesign moduleJake Petroules2021-02-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves code signing functionality into a dedicated module, and also implements automatic provisioning for Apple platforms, which automatically selects appropriate signing identities and provisioning profiles based on the product being built. This also results in a significant performance improvement since all code signing setup information is retrieved in process instead of forking off the openssl and security command line tools. Task-number: QBS-899 Change-Id: I60d0aeaeb2d1004929505bcb1e0bc77512fe77bc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Test for array-like objects with instanceof ArrayRichard Weickelt2021-02-151-2/+2
|/ | | | | | | | | | Array.isArray() seemed to work for arrays created in scripts as well as for QStringList and QVariantList created in C++ when using QtScript. QJSEngine is more strict (see the comments in QTBUG-45018). One way to work around that problem is to use instanceof Array instead. Change-Id: I0f1c8757a5ab2f82e26eff19a8b5ecf667bb04b1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Fix detection for IAR compiler include pathsDenis Shienkov2020-10-151-4/+5
| | | | | | | | We need to return an approproate compiler include paths depending on the language tag ('cpp' or 'c'). Change-Id: I5b526cf67a8e2300bf9302862ed67535866997ee Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Handle cpp.enableDefinesByLanguage for SDCC toolchainDenis Shienkov2020-09-241-2/+16
| | | | | | | | | We need to ignore the 'cpp' language because this compiler does not support it. Also if only one 'cpp' language specified, we need to return false for the 'found' property of a probe. Change-Id: Ic9f8b3e1ce06dde55b5a9bdc5c1018e039316cd7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove extra semicolonsDenis Shienkov2020-09-116-30/+30
| | | | | Change-Id: If2c25fb03a9c6429a4af66efcd703e4fefe65820 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Fix InnoSetupModule to support InnoSetup v6Ivan Komissarov2020-09-041-10/+17
| | | | | | | | Also, fix tests to check the presence of the innosetup in qbs files instead of the test itself Change-Id: I5fcb40cf301cf606c2cf3414a716ed66d1083868 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Fix assignment of probes 'found' flagDenis Shienkov2020-09-043-6/+8
| | | | | | Change-Id: I532e06f6688c5ad32702cd3401ae4ef37200a23f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch 1.17 into masterRichard Weickelt2020-08-141-8/+16
|\ | | | | | | Change-Id: Ibdf2afb9f05682e0624540af22330abc8580bafb
| * Tune search order of path probesIvan Komissarov2020-08-131-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Within the groups of user-provided and system-provided paths, environment variables need to take precedence over properties, because there is currently no other way to override the search paths of probes from the outside if the probe-using code did not explicitly bind them to Product/Module properties. We search directly user-provided paths before ones from system-provided environment variables to minimize the risk of surprises due to outside influence. [ChangeLog][Behavior Changes] The lookup order in PathProbe changed to [environmentPaths, searchPaths, platformEnvironmentPaths, platformSearchPaths] Change-Id: Ib0c3bc44e5a8efaaaa073f28f1f3a53feb0f78db Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Avoid wrong-typed temporary assignment to probe propertyRichard Weickelt2020-08-141-4/+5
|/ | | | | | | | | | | | | | | | | The code assigns a temporary string to the cflags and libs properties which are both declared as stringList. Later, it reads these properties, expects string values and converts them into arrays. While this seems to work with the current QtScript engine, it won't with the QML-based evaluation engine. That is because any read access to a item property will return exactly the declared type or undefined. In this particular case, we would assign the temporary string to a stringList property which the engine would automatically convert into a stringList (array) when reading and thus, calling split() would result in an error. Change-Id: I53e0c51ee042f787e0d444cdc6cfe4b8820e46ac Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Probes: Remove nameFilter from FrameworkProbeIvan Komissarov2020-07-162-8/+5
| | | | | | | | | | It is not possible to use functions as values for properties with the new JS engine. Remove nameFilter by allowing to have common nameSuffixes for different selectors. Change-Id: I24ae747f4d609c956285e77ee832c6e99304a622 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Probes: Remove deprecated properties from PathProbeIvan Komissarov2020-07-151-10/+2
| | | | | | | | They were declared deprecated in qbs 1.13, looks like it's safe to remove them. Change-Id: I493f7bb9578da1bb579161338bcb5d391cc15f4c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix copyrightsIvan Komissarov2020-05-121-1/+1
| | | | | | | | In several places, mail was missing. In others, it was incorrectly placed on the 'Contact' line Change-Id: I462301555fe59140f54fd504b5beb37d7c6fca87 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add support for ARMCLANG compiler in Keil toolchainDenis Shienkov2020-05-111-1/+1
| | | | | | | | | | | | This patch adds support for ARMCLANG compiler: * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774a/index.html which supplied with the Keil MDK ARM installation. Change-Id: Ib28fd75d1ed4d9557ff58189d14f4ecea6a4267b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix autodetecting mingw compiler in PATHIvan Komissarov2020-04-031-0/+1
| | | | | | | | | | | | | | | GccBinaryProbe failed to locate g++.exe since it tried to append ".exe" suffix which is already present in filename. Also, fix the emptyProfile() test by setting the qbs.toolchainType instead of read-only property "qbs.toolchain" which cannot be assigned from the command line. Also, prepend the original cpp.toolchainInstallPath value to the PATH variable to make sure Probe will find the desired compiler. Change-Id: I12341ee1cd4d8ea0cbcdf3781347bfc0a2780ad2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* LibraryProbe: extend search pathsIvan Komissarov2020-03-301-4/+29
| | | | | | | | | | This allows to search for libraries in Linux-specific directories such as /usr/lib/x86_64-linux-gnu on Debian. This also enables auto-testing protobufcpp module in Travis for Linux Change-Id: Ib8628bbbb25846d1338676619ffc8b3f15cf67b1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GccBinaryProbe: Exit early if we didn't find anythingChristian Kandeler2020-03-041-3/+4
| | | | | | | | | Otherwise, we potentially access undefined objects. Fixes: QBS-1385 Change-Id: I98aa99b51c80e5f60ebb335917552529b340a8e8 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Autodetect clang-cl by using ProbeIvan Komissarov2020-02-171-0/+73
| | | | | | | | This allows to build projects without calling "qbs setup-toolchains" first by simply calling "qbs build qbs.toolchainType:clang-cl" Change-Id: I86d135ddf2cb588f322709e4e7a265cb6fd7772f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add ConanfileProbe item for querying conan recipe filesRichard Weickelt2020-02-151-0/+130
| | | | | | | | | | | | Conan is a popular C/C++ package manager. Conan packages including their configuration and dependencies are usually described as conanfile.txt/.py. ConanfileProbe runs 'conan install -g json' and parses the resulting conanbuildinfo.json. The resulting JS object tree contains relevant information about the dependencies and can be used to set module properties in Product, Profile or even Module items. Change-Id: Ied6b917f061dac67fb2260eab099bcce4037750d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Autotedect MSVC compiler by using a probeIvan Komissarov2020-02-141-0/+71
| | | | | | | | This allows to build projects without calling "qbs setup-toolchains" first by simply calling "qbs build". Change-Id: Iba4af8bf77d0ee5d209564ea371328d3c6cf2aa2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* clang-cl: Fix macro dumpingIvan Komissarov2020-02-141-3/+5
| | | | | | | | | | Previously, clang.exe was used to dump macro as clang-cl does not support the MSVC way. Also, architecture was not detected correctly because of the wrong assumption that clang-cl respects arch variables set by the vcvarsall.bat Change-Id: Ic6464c2bd90f1a2fceb2f8aa884721872179ff49 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use consistent names in PathProbesIvan Komissarov2020-02-051-10/+10
| | | | | | | | This code is copy&paste but different variable names make it easy to make a mistake doing changes Change-Id: Iab5b923ac010e1aa1fb158ee1d66986f41a0fa2a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>