aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Fix bogus error about duplicate source filesChristian Kandeler2018-12-136-4/+78
| | | | | | | | | 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>
* Version bumpChristian Kandeler2018-12-102-4/+4
| | | | | Change-Id: I53f3af19efe5b2ae026285bb43d88314423a2400 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix PlatformToolset for VS 2017 projectsv1.12.2Joerg Bornemann2018-11-151-0/+3
| | | | | | | | | | The default "platform toolset" is v141, while the VS major version is 15. This case is now hardcoded, because I fail to see a pattern in this nonsense, sorry. Task-number: QBS-1371 Change-Id: I69194a6cbbd072d364b13e69178363bd90632346 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix qbs buildChristian Kandeler2018-11-121-0/+2
| | | | | | | Don't try to bundle libraries of Qt modules that don't have any. Change-Id: I160d5b030db5ecbfa1b8eebb3babdc6ec7f41883 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Update change logChristian Kandeler2018-11-061-0/+8
| | | | | Change-Id: Ie2ef3d8b281523525482094a5fc661155a6031ca Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* 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>
* qtprofilesetup: Support platforms where qtmain is called qt5mainChristian Kandeler2018-10-221-13/+28
| | | | | | | Fixes: QBS-767 Change-Id: I5b00c7d13d59cc4f461b0806f22536e595c0a266 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qtprofilesetup: Call fillEntryPointLibs() only when necessaryChristian Kandeler2018-10-221-2/+8
| | | | | | | | | | This function is parameterized by build variant. It should only be called if libraries for the respective build variant are present in the Qt installation. Change-Id: Ie43958c54e16bdfedf60a8c0339098eb8d694165 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not try to evaluate the properties of non-present modulesChristian Kandeler2018-10-225-0/+64
| | | | | | | It's unnecessary and potentially harmful. Change-Id: Iff5a9a52a7aeb518617104c5eaa41cfeededbea5 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* qmake build: Opt out of qtquickcompiler functionalityChristian Kandeler2018-10-181-0/+2
| | | | | | | | | | | | | | | The qtprofilesetup library contains a resource file with JavaScript sources. Now if "CONFIG += qtquickcompiler" is set globally, as it happens by default in Qt Creator, qmake believes that we want to compile the js files, which leads to disaster. Arguably, Qt should ignore the qtquickcompiler CONFIG value if the product does not pull in QtQml, but until that happens, let's force- disable the qtquickcompiler. Fixes: QTCREATORBUG-21340 Change-Id: If4802277ab66b550b0c88e5678cadf59a32e68d2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* qtprofilesetup: Understand the mkspec prefix "mingw"Christian Kandeler2018-10-184-13/+27
| | | | | | | E.g. Fedora provides "mingw-w64-g++". Change-Id: Ife197baa8ddd1b364025056b1ec7895a0b60d5dc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* libqtprofilesetup: Try to find the library when .prl file is missingChristian Kandeler2018-10-121-10/+27
| | | | | | | Task-number: QBS-1399 Change-Id: Icf2cf11cf50560cc2229240a592d477a39b69d7a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Exporter.qbs: Prevent passing an empty string to FileInfo.relativePath()Christian Kandeler2018-10-121-1/+1
| | | | | | Change-Id: I55a5daf06dfc89a302914a3e3a0734540e2b401e Reviewed-by: Alexander Jakobi <alex.jakobi@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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-117-1/+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-119-31/+89
| | | | | | | | 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>
* libqtprofilesetup: Properly handle quoted paths in .pri filesChristian Kandeler2018-10-111-1/+29
| | | | | | | Fixes: QBS-1399 Change-Id: I52e93a1d80203337c9cedbc09386b0c6c5334f91 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt templates: Take sanitizers into accountChristian Kandeler2018-10-091-0/+14
| | | | | | | | | | If Qt was built with e.g. address sanitizing, then code linking against it should also have it enabled. Otherwise applications will not run out of the box. Change-Id: I25360d72073499a10ba84d84a47e539f39baf318 Fixes: QBS-1387 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Documentation: Mention qmake's OTHER_FILES in the porting guideChristian Kandeler2018-10-091-4/+5
| | | | | | | Fixes: QBS-1388 Change-Id: I3d4dadcf9e16d839289960252a068e29058255cf Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Persistence: Remove template specialization for time_tChristian Kandeler2018-10-081-14/+0
| | | | | | | | | | It does not appear to be necessary, and it can conflict with other partial specializations. Change-Id: Ia51d967d8610ac62a9c6ebe28847589c8eb77304 Fixes: QBS-1395 Reviewed-by: Vadim Zhukov <persgray@gmail.com> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* MSVC: Add support for the Visual Studio 2017 Build ToolsChristian Kandeler2018-10-084-12/+100
| | | | | | | | | | | | | | 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>
* 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>
* Version bumpKai Koehne2018-10-021-1/+1
| | | | | Change-Id: I91586f7fbab2524f173e470d6846ecac3f5ce030 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix over-eager sanity checkv1.12.1Christian Kandeler2018-09-041-5/+9
| | | | | | | It could trigger on legal constructs. The patch amends 9c1aa4ece1. Change-Id: I31eab78fdb58262f2e4935f4eebf4023e4a4adc0 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Fix invariant in the RequestedArtifacts classChristian Kandeler2018-09-044-13/+14
| | | | | | | | | | If an artifact map is requested a second time, we need to update the set of all tags if the artifacts map has changed in the meantime. This fixes an assertion in the sanity checks. Change-Id: Iacf8d4376c7a3a356428cc7eb508dbd22e945a8c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Executor: Fix invalid assertionChristian Kandeler2018-09-035-1/+41
| | | | | | | | 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>
* ModuleLoader: Fix memory leakChristian Kandeler2018-09-031-2/+2
| | | | | | | One of the allocations was not exeception-safe. Change-Id: Ib367f9f2e5e65d0813465d5dcbf9dc779418bdfc Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Store product names in ExportedModuleChristian Kandeler2018-08-316-19/+29
| | | | | | | | | | | | | ... rather than product pointers. ExportedModule objects can be stored in Transformers, which potentially outlive the referenced products. Alternatively, we could update the product pointers during change tracking, but that would be tedious and error-prone. [ChangeLog] Fixed possible crash on storing a build graph after re- resolving. Change-Id: I09bcf638a17da410198524858eb4c1bda59bebcb Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Fix potential inconsistency in Artifact dataChristian Kandeler2018-08-102-4/+4
| | | | | | | | If safeConnect() returns false, we must not add that "child" to the list of children added by scanners. Change-Id: Icbb1b2d14d99f002e2370ee2bda25daafb0398b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix potential false caching of module prototypesChristian Kandeler2018-08-109-25/+66
| | | | | | | | | | | | | | | | Our code assumed that products with the same profile and the same multiplex configuration would also evaluate a module's condition to the same value, which is not true: Properties such as qbs.architecture, which are commonly checked in module conditions, can be set in a product item independently of multiplexing. We now evaluate the module condition for every product. According to our benchmarker, the slowdown is a very modest 2% and does not appear to increase for larger projects. This patch amends 08ce978733, which tried to address the same problem, but succeeded only for a subset of the possible cases. Change-Id: I992e0f0d5cf207949cf5d863f242b9476ecdfc05 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* ModuleLoader: Fix edge case in Depends.productTypesChristian Kandeler2018-08-084-0/+63
| | | | | | | It makes no sense to consider multiplexed variants of the same product. Change-Id: I7ebee091264451dc587156a0c543932059ed9948 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Autotests: Prevent another false positive on slow CI machinesChristian Kandeler2018-08-021-0/+1
| | | | | Change-Id: I0243ca9cad9fcd5506a27b4b752f915633c9b493 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Add a changelog for 1.12.1Christian Kandeler2018-08-021-0/+6
| | | | | | | To be kept in sync for all upcoming commits. Change-Id: I96e79bad9d98137dcf4ec90da6622e7058af6e24 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* GCC: Allow the -march option to be set in project filesChristian Kandeler2018-08-022-3/+7
| | | | | | | | | It is unrealistic to cover all its possible uses via dedicated properties. Task-number: QBS-1018 Change-Id: Iacfb9617ef130255c35766f057c60be9f816bca2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix OOM crash in QRC scannerJoerg Bornemann2018-08-011-3/+5
| | | | | | | | | | | | | | We implicitely created a QByteArray with the file content without passing the file size. This would result in copying the whole mmapped file into memory, and potentially much more if there's no terminating null byte. Fix this by using QByteArray::fromRawData which we pass the correct file size and which doesn't copy the data. Task-number: QBS-1375 Change-Id: I35c4cceba64343550094c29298ff9b3617718dac Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ModuleLoader: Suppress bogus subsequent errorsChristian Kandeler2018-07-311-1/+23
| | | | | | | | | This is only relevant for relaxed mode (used by IDEs). We try hard not to cause bogus subsequent errors in the first place (see cadb0864c9), but in some edge cases we still run into them, and will drop them now. Change-Id: I0a12086c29f9e9f6b647902eaaf634c8ea0a094d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* GCC: Fix ldconfig ProbeChristian Kandeler2018-07-311-2/+6
| | | | | | | | | There can be additional content on a line of ldconfig output after the colon. Task-number: QBS-1372 Change-Id: Icb24f02951d323f00f8c3bd25f61021f3bf72839 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix false positives in artifacts map change trackingChristian Kandeler2018-07-307-24/+161
| | | | | | | | | | | | | | | | | | | | | We used to invalidate a script if it accessed the artifacts map and that map's keys are now different from what they were. However, that logic was too coarse: All rules that run after the command will add new artifacts, so such changes will be the norm, at least when the project is built for the first time. As a result, some artifacts might get rebuilt unnecessarily on the next qbs invocation. The reason why we did it that way was that we needed to consider the case where a script iterated over the elements of an artifacts map, e.g. using a for..in loop. In such a case, we cannot know which part of the map the code is interested in and the script needs to be re-run if the keys change. This is now solved with the help of a QScriptClass, which informs us if a script enumerates the keys. In all other cases, the script only accesses well-known tags, so we only have to compare the respective artifact lists and do not care about other keys getting added or removed. Change-Id: I182a50c34ece28f7ff3f7eba7a8f246e9b79b30e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make sure product type and artifact file tags are sortedChristian Kandeler2018-07-303-3/+5
| | | | | | | | | ... when accessed from JavaScript. Due to the FileTag class being based on Id, we sometimes get a different order of elements, leading to false positives in change tracking. Change-Id: Ie2f1a2e9a229fddcd479175323dded3a80bb02e5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* GCC: Only consider absolute paths for the system paths checkChristian Kandeler2018-07-301-2/+2
| | | | | | | | There is no reason to pay for the call to canonicalFilePath() if the candidate is not an absolute path. Change-Id: Ief39a72ef8967c1315fe6665e1b2795da168027e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Install missing header fileChristian Kandeler2018-07-202-1/+2
| | | | | | Task-number: QBS-1370 Change-Id: Ib541db1c783a6b7878d1712fd735dbb4779d2d96 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Version bumpChristian Kandeler2018-07-192-3/+3
| | | | | Change-Id: I3f2db0a0388c34dde148506b9081dbaaea03de25 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* API: Consider auxiliary inputs when collecting transformer datav1.12.0Christian Kandeler2018-07-121-0/+5
| | | | | | | | | All auxiliary inputs are guaranteed to be present when a rule's commands run, so they must be added to TransformerData::inputs. Change-Id: I4c58f567ab603868aae180d931225edf7f9dcbf9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update link for minimumWindowsVersionOrgad Shaneh2018-07-111-1/+1
| | | | | Change-Id: Ibb98b4a9166e3cd61fe9aacd0e6a5a2eb9eb7624 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Autotests: Prevent another false positive on slow CI machinesChristian Kandeler2018-07-111-0/+1
| | | | | Change-Id: I3577f425e40e1c19e5876e5d71f27455779a330e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Consider Rule::excludedInputs where neededJoerg Bornemann2018-07-103-1/+6
| | | | | | | | | ...and add an assert that ensures that excluded inputs never appear in the rule application. Task-number: QBS-1171 Change-Id: Ia71c3224807bd9370f0d5048db45d6f9fb570fa1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>