aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/module-providers
Commit message (Collapse)AuthorAgeFilesLines
* C++: Add support for clang on WindowsChristian Kandeler2019-08-141-0/+4
| | | | | | | | | | | | | This is about clang in "mingw mode", not clang-cl. When targeting Windows, clang is a lot like mingw, so factor out the common parts into a new base module. Testing uncovered a number of invalid assumptions in our autotests, which are also fixed in this patch. In addition, minor adjustments had to be made to the Qt.core module and to the qbscore lib. Change-Id: I73085dc62a65e2a9d0397cf234c8641989246f22 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* ios: Move cpp.entryPoint from Qt.Core to Qt.guiIvan Komissarov2019-07-102-4/+6
| | | | | | | | | It seems, that console ios apps should not try to do a _qt_main_wrapper trick since there's no platform plugin linked to the app and linker fails to find wrapper. Change-Id: I607db658d5e25d6029626b4a7efb46b2e228ab52 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add hasLibrary property to Qt.coreRichard Weickelt2019-07-091-0/+1
| | | | | | | | This allows us to treat Qt.core similar to other Qt modules based upon QtModule.qbs when bundling Qt libraries together with an application. Change-Id: I9ae54ec40c3fb7506181afbd437f4e2f03b02e41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.13 into masterChristian Kandeler2019-06-141-1/+1
|\ | | | | | | Change-Id: Idab53d6bd9b6f2841e30d4a31f53ac53a05c2f09
| * Add Visual Studio 2019 support1.13Joerg Bornemann2019-06-071-1/+1
| | | | | | | | | | | | Fixes: QBS-1451 Change-Id: I644835cf8ce18d546e6c8e2c75f689766456555d Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* | Add pkgconfig.sysroot propertyIvan Komissarov2019-05-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | By default, pkg-config uses qbs.sysroot property which is not desirable in some cases - for example, on macOS, even build for current system is sysrooted to the SDK folder within XCode installation. pkg-config installed with brew resides in /usr/local and can't be found within an SDK dir. For that reason, it make sense to override it manually Change-Id: Ibf779fd1bf0e87189abb2eab23d4e9e153fcca17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.13 into masterChristian Kandeler2019-05-231-11/+25
|\| | | | | | | Change-Id: Ic8e80604deb03e48fe264271de2e0add5023af87
| * 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>
* | Merge 1.13 into masterChristian Kandeler2019-05-105-5/+13
|\| | | | | | | Change-Id: Ic02d717f80f5d831f0cedb3b7c565a9bfef3a2a3
| * 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>
* | 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>
* | Default to the minimum supported NDK API versionBogDan Vatra2019-04-261-1/+1
| | | | | | | | | | | | | | | | | | - 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: Nuke support for old NDKsBogDan Vatra2019-04-251-14/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | 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>
* 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: 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>
* 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>
* 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>
* Introduce module providersChristian Kandeler2019-01-232-0/+129
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>