aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Detect Qt via a module providerChristian Kandeler2019-02-121-9/+6
| | | | | | | | | | | | | | | | | 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>
* Module providers: Fix some change tracking problemsChristian Kandeler2019-02-111-1/+2
| | | | | | | | | | | - 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>
* Qt: Allow users to explicitly tag files as mocableChristian Kandeler2019-01-296-0/+57
| | | | | | | | | 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>
* Introduce module providersChristian Kandeler2019-01-2311-6/+187
| | | | | | | | | | | | | | | | | | | | | | 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>
* Add recursive dependency scanning of GNU ld linkerscriptsOla Røer Thorsen2019-01-185-12/+116
| | | | | | | | | | | | | | 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>
* C++ scanner: Register for rc filesChristian Kandeler2019-01-174-6/+28
| | | | | | | | 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-158-0/+52
| | | | | | | | | | | 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-144-0/+27
| | | | | | | Fixes: QBS-1421 Change-Id: I1f6d749eba38c9a4caa60341f19ee5e89e89d28a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* SetupProjectParameters: Remove invalid assertionChristian Kandeler2019-01-073-0/+25
| | | | | | | It prevented users from overriding variant properties. Change-Id: I37c3e0a127048d7a6c6d396b20b424003ac25903 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* GCC: Make it possible to force the linker variantChristian Kandeler2019-01-074-0/+51
| | | | | | | | | | | | ...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>
* Add atEnd() function to the Process serviceOla Røer Thorsen2019-01-032-1/+20
| | | | | | | | | | | | This makes it possible to use readLine in a while loop until the complete stream is read, even when reading empty lines. [ChangeLog] Added atEnd() function to the Process service, to make it possible to use readLine() in a while loop until the complete stream is read. Change-Id: Ie5f047651977195d6a93c4575bd7a8796b83ab5d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix FileInfo.canonicalPath blackbox test for non-UnixJoerg Bornemann2019-01-022-2/+4
| | | | | | | The path passed to canonicalPath has to exist. Change-Id: Ibcc0a142ab5714e6a937c688fd1fd035fdfea9e3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add FileInfo.canonicalPathJoerg Bornemann2018-12-202-1/+3
| | | | | | | | | [ChangeLog] Added the canonicalPath() function to the FileInfo extension. Task-number: QBS-742 Change-Id: I8490b1bbdb3ac4ce84b80e82ca9f37bd2816e150 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.12 into masterChristian Kandeler2018-12-174-0/+73
|\ | | | | | | Change-Id: I44f8e2c5f3fbe8fc67deada65a4136257572239e
| * Fix bogus error about duplicate source filesChristian Kandeler2018-12-134-0/+73
| | | | | | | | | | | | | | | | | | There is no conflict if the same file is pulled in both as a target artifact of a module and a normal source file. Fixes: QBS-1416 Change-Id: Ic7467af5a8728ebb1540381c845ffc0f40e06a9c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Rename PathProbe.pathPrefixes and PathProbe.platformPaths propertiesIvan Komissarov2018-12-103-4/+4
| | | | | | | | | | | | | | | | | | 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>
* | Android autotests: Add missing fileChristian Kandeler2018-12-071-0/+0
| | | | | | | | | | | | | | Amends 4ebb16fa78. Change-Id: I32b8651cf64a28605a77f45226c6697400b1a2bb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Support big Qt resourcesJoerg Bornemann2018-11-301-1/+28
| | | | | | | | | | | | | | | | [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 protobuf autotestsChristian Kandeler2018-11-224-30/+18
| | | | | | | | | | | | | | | | | | | | Product-level probes run before module validate scripts, so we cannot use a Probe to determine whether the protobuf module was successfully set up. Change-Id: I6debc86f1b6b06c8bbdb276a7ff786828b9f9819 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Add protobuf.cpp and protobuf.objc modulesIvan Komissarov2018-11-2214-0/+388
| | | | | | | | | | | | | | | | | | | | | | 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>
* | qbs build: Fix look-up of qbs executable by autotestsChristian Kandeler2018-11-212-4/+5
| | | | | | | | | | | | | | | | The code worked only if qbs.installPrefix was empty. Change-Id: I9ba69f10c976b4a2b71ae4934c4cdac58895882a Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix android autotest for the case of no Qt profile being presentChristian Kandeler2018-11-161-0/+2
| | | | | | | | | | Change-Id: If09515d070802cc6d34101c5662962436482bd55 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Properly support building Qt apps for AndroidChristian Kandeler2018-11-167-12/+264
| | | | | | | | | | | | | | | | ... via the androiddeployqt tool. Fixes: QBS-991 Change-Id: I4a3abe977fee6a9d1657a4fd6c1b43709429da9f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix TestApi::generatedFilesList() for static QtChristian Kandeler2018-11-131-1/+2
| | | | | | | | | | | | | | Another fallout of 5f1b52e1c6. Change-Id: I9b574723c52c7f2b9fb7d66a5dd12033654e2ec7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix TestBlackboxQt::staticQtPluginLinking()Christian Kandeler2018-11-131-0/+1
| | | | | | | | | | | | | | | | Pulling in a platform plugin has no effect anymore if Qt.gui is not also loaded. Change-Id: I6e3e73c903192906722884dd7f566b228d938a8e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Fix pluginSupport autotestChristian Kandeler2018-11-125-11/+57
| | | | | | | | | | | | | | | | | | Our test machine does not have the image plugins we hardcoded, so be more flexible. This also tightens the test a bit. Change-Id: I0cc49b3066909ac3e4ec387515e689a00042f4d5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Qt support: Allow users to pull in plugins by typeChristian Kandeler2018-11-096-0/+44
| | | | | | | | | | | | | | | | | | | | ... 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>
* | qbs module: Do not set default values for multiplexing propertiesChristian Kandeler2018-10-311-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
* | Add "show progress" support on WindowsAndreas Zieringer2018-10-301-8/+5
| | | | | | | | | | | | | | | | Should work with all console types. Fixes: QBS-1407 Change-Id: I5144469d70d79a263f9960092abda9a3d83462a1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.12 into masterChristian Kandeler2018-10-265-4/+82
|\| | | | | | | Change-Id: I5cf41522f027adac0889dc1df96613012216f092
| * Fix TestBlackbox::qbsConfig()Christian Kandeler2018-10-241-4/+20
| | | | | | | | | | | | | | | | ... for the case that it is run by a user with admin rights. We should not expect failure in that case. Change-Id: Ib045bf550dbedbfcaa3c38fc9f713a40541ddb61 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
| * Do not try to evaluate the properties of non-present modulesChristian Kandeler2018-10-224-0/+62
| | | | | | | | | | | | | | It's unnecessary and potentially harmful. Change-Id: Iff5a9a52a7aeb518617104c5eaa41cfeededbea5 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* | Prevent "dynamic" values from getting assigned to command propertiesChristian Kandeler2018-10-254-7/+26
| | | | | | | | | | | | | | | | | | | | Values such as artifact objects are not plain data and we therefore must not attempt to make deep copies of them. Catch attempts to assign them to command properties. Fixes: QBS-1404 Change-Id: I1fa02720a3543cd8e2c734ed9437d31b5a573d57 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* | Fix Android autotests without a dedicated profileChristian Kandeler2018-10-232-0/+2
| | | | | | | | | | Change-Id: I95d21a41a7fdf879f45f59648ce1ba693d3a9c40 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | Android: Enable building apps with native code and no multiplexingChristian Kandeler2018-10-195-10/+82
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge 1.12 into masterChristian Kandeler2018-10-1221-39/+120
|\| | | | | | | Change-Id: I96c735aeda89e02f1fa9107ecfc10ebf4b554dbc
| * Fix build with MSVCChristian Kandeler2018-10-111-1/+1
| | | | | | | | | | Change-Id: Iec49ba912161d5411a59440925dfd868a9c794fb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Remove bogus assertion from Properties item handlerChristian Kandeler2018-10-116-0/+58
| | | | | | | | | | | | | | | | | | It does not appear to serve a purpose, and it prevented deriving from the Properties item. Change-Id: Icf71e3358299ea7a0f697637967e65dd0fb9b743 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Android support: Adapt to changes in newer revisionsChristian Kandeler2018-10-115-7/+18
| | | | | | | | | | | | | | | | Revision 17 dropped some architectures, revision 18 removed GCC. We also missed some earlier changes to clang-related paths. Change-Id: Ie2fa1891f7f4de28e18ea6caadce9eac964bb523 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Fix autotests for Xcode < 10Christian Kandeler2018-10-081-1/+2
| | | | | | | | | | Change-Id: Ia162d7fb17e69e4d0c30678d0e2e3bf31418a711 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
| * Fix autotests for Xcode 10Christian Kandeler2018-10-0510-31/+40
| | | | | | | | | | Change-Id: I0d218f415eedbfc75c2cf10877646f6831f38f89 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
| * Fix TestBlackbox::cxxLanguageVersionChristian Kandeler2018-10-041-1/+1
| | | | | | | | | | | | | | One of the if-clauses was missing an else keyword. Change-Id: Ibbc7946adedf82902748521b9c550759a4405d23 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Android: Rewrite the rules gathering binaries for packagingChristian Kandeler2018-10-041-8/+6
| | | | | | | | | | | | | | | | | | | | | | These rules were unnecessarily complicated; in particular, the indirection via a text file for the gdbserver and STL binaries was not needed. This also fixed the gdbserver file name in the package: It has to be libgdbserver.so, rather than just gdbserver as on the host. Change-Id: I2315660983904e8b922164be9054d6bba51f852d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.12 into masterChristian Kandeler2018-09-043-0/+39
|\| | | | | | | Change-Id: Ia115255ae46772a83c1196fbe291ff295927ee92
| * Executor: Fix invalid assertionChristian Kandeler2018-09-033-0/+39
| | | | | | | | | | | | | | | | An artifact whose alwaysUpdated property is false does not need to exist and is therefore not required to have a valid timestamp. Change-Id: I642349c49a53e6e45d6b09d1acc87f4c9a0edae9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | MSVC: Give hint about possible reason for missing import libChristian Kandeler2018-09-046-0/+74
| | | | | | | | | | | | | | | | | | | | If an import lib is unexpectedly not present, the reason is usually that no symbols are exported from the DLL. This is not obvious at all, so catch this condition and explain what is happening. Task-number: QBS-1291 Change-Id: Ia2df8e1a27e0231e855413245703ffc05221722e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Filter references to importingProduct from exported list propertiesChristian Kandeler2018-09-041-1/+6
| | | | | | | | | | | | | | | | It's just a heuristic, because we don't have access to single elements of JS arrays, but it should cover the most common cases. Change-Id: I02f9ff215394d108f7ba52662eff7b4f5e8e1a62 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Android: Properly support the aidl toolChristian Kandeler2018-08-276-1/+59
| | | | | | | | | | | | | | | | We now pull in the AIDL framework file and let the user set search paths for imports. Change-Id: I93460a77b064fa87849b93c0b0e4bd3bbfd7459f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Fix race condition in TestBlackboxJobLimitsChristian Kandeler2018-08-132-11/+32
| | | | | | | | | | | | | | Do proper file locking in the test app. Change-Id: I985006c0e48a21b9412afd461edc3d7b9f02fcce Reviewed-by: Christian Stenger <christian.stenger@qt.io>