aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Executor: Do not convert error objects into stringsv1.8.1Christian Kandeler2017-06-221-1/+2
| | | | | | | | | | Command line users do not see a difference, but for IDE users it is important that we keep error message and code location separate in the ErrorInfo objects we hand out via the API. Task-number: QBS-1151 Change-Id: I4aacf2f32ee535c2d37da3d615ab78e2777a351a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix error messages in console functionsJoerg Bornemann2017-06-191-4/+4
| | | | | Change-Id: I8bd20c7ca4cae81193bf4def946846fd393d170e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make ItemReaderVisitorState::readFile() exception safeChristian Kandeler2017-06-151-3/+10
| | | | | Change-Id: Ia3eb38e92f1337abf92064f9b55222e3afa05811 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix error message for property overridesChristian Kandeler2017-06-121-2/+3
| | | | | | | One particular syntax mentioned is not actually available in 1.8. Change-Id: Icd2bb1ad4cdc74eecdf5efdd3924c9be76c104d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* setup-qt: Fix automatic base profile assignment for MSVC Qt'sJoerg Bornemann2017-06-092-46/+64
| | | | | | | | | | Read MSVC version from qconfig.pri instead of trying to guess it from the mkspec name. The latter is broken since the introduction of the common win32-msvc mkspec for all MSVC versions. Change-Id: I24bd2d5b4935dbba2e296b15d4e6a553393eca3a Task-number: QBS-1141 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* setup-qt: compress MSVC profiles even when Qt's MSVC version is unknownJoerg Bornemann2017-06-091-8/+25
| | | | | | | | | | | | | | | | | "Compressing" MSVC profiles means that if MSVC2017-x64 and MSVC2017-x86_x64 fully match, then we drop MSVC2017-x86_x64 and connect the Qt profile to the former. This compression took place only if there was a valid Qt version. Do the compression always now, and take care that we throw out the right cross-compiler toolchains. While this patch does not fully fix QBS-1141, it alleviates the symptoms if only one MSVC is installed, which is usually the case. Task-number: QBS-1141 Change-Id: Ied766b6051074fbb92037185f2a357bcdbc55b68 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Warn against non-prefixed command-line property overridesChristian Kandeler2017-06-081-8/+31
| | | | | | | | We changed the syntax for 1.8, but users did not get any hint about that when using the old one. Change-Id: I953de0422426d19513f3306417fb26577038919b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix mismatched class/struct warningJake Petroules2017-06-081-1/+1
| | | | | | | This fixes a regression introduced in e68a7a5. Change-Id: Ic1df82c636b8505e83fdca58c28062bd54bbea17 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add an entry for the qbs file itself in the generated vcxprojJake Petroules2017-06-064-0/+36
| | | | | | | Task-number: QBS-1128 Change-Id: I632096fd350472c7274a6cb38b4ddbdf8ec04515 Reviewed-by: Thomas Epting <thomas.epting@stryker.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix handling of same subproject names in generated VS solutionsJake Petroules2017-06-063-5/+42
| | | | | | | | | | | | | | | | While Qbs product names must be unambiguous, using the same project name several times is perfectly valid, as long as all projects with the same name belong to a different root project. Utilize the project's source file location to distinguish projects that have the same name. Use this in conjunction with the name to create an ID that is used as the key for the solutionFolders map. Change-Id: I47079cd4207d505892e79755a3986614025d2749 Task-number: QBS-1082 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Thomas Epting <thomas.epting@stryker.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix a couple of typosDmitry Shachnev2017-06-063-3/+3
| | | | | Change-Id: Ie9fd8d94261c1f6e5314f490519a613b2284228a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Add failing test for QBS-1016Joerg Bornemann2017-06-061-1/+5
| | | | | | | Task-number: QBS-1016 Change-Id: I78632b31eb72ae5bd7d19d5d262fee66a96a1671 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Revert "Modernize EvaluatorScriptClass::QueryResult"Christian Kandeler2017-06-061-2/+6
| | | | | | | | | | This reverts commit 8f525a7c5ecc185eff69cc739f78b419c0cb2d3a. Absurdly, the C++ standard forbids const objects of classes that don't have a user-provided default constructor. Maybe they forgot that non-static member initialization exists... Change-Id: I4c7bb01bc0f89ab2c5afcc1ffe12c7e0ae977429 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove superfluous nullptr check in SVConverterJoerg Bornemann2017-06-021-1/+1
| | | | | | | | We do not need to check itemOfProperty for nullptr, because it is always provided. Other code paths already use this variable unconditionally. Change-Id: Ibf4cd79aa0579361300cd6b6734b15c49bd1e6ec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Modernize EvaluatorScriptClass::QueryResultJoerg Bornemann2017-06-021-6/+2
| | | | | | | | Remove the default constructor that just existed to initialize member variables. Change-Id: Ia7282957ae640d1518f7be4764c105aba168b275 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Tighten QBS_ASSERTs in EvaluatorScriptClassJoerg Bornemann2017-06-021-1/+10
| | | | | | | | | Let QueryResult::isNull() (which is only used in QBS_ASSERTs) check all struct members to make sure we do not encounter old data in queryProperty/property calls. Change-Id: I8412e8e8cba7ab38f56c303499384711b78f0623 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix lookup of shadowed parent propertiesJoerg Bornemann2017-06-023-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | Consider the following example Project { name: "project" property string projectName: name Product { name: "product" property string foo: projectName } } The foo property is supposed to have the value "project". Instead it had the value "product". EvaluatorScriptClass::property() and SVConverter assume that data->item is the item that's attached to the QScriptValue object. That was not the case when a property was automatically looked up in the parent item. Task-number: QBS-1117 Change-Id: I21d4cc4106ae631730cd34fe352459d311b09501 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Revert "Fix (wrong) GCC7 fallthrough warnings"Orgad Shaneh2017-06-026-9/+7
| | | | | | | | | Declare throwError with noreturn instead. This reverts commit 9030d940e089676d87a6854145733191e26fba60. Change-Id: I11c7adfec53090e326c47c08d4978c120e2ca98b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix tst_language moduleProperties:shadowed-list-propertyJoerg Bornemann2017-06-021-1/+1
| | | | | | | | | The expected value is a list and not a string. This amends commit 85881f7f. Change-Id: Ie37636d9579a192139a372b5e6f0e0585b5736bd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix (wrong) GCC7 fallthrough warningsOrgad Shaneh2017-06-012-0/+2
| | | | | | | An exception is thrown, so it does not real fall through. Change-Id: I02f11caff677d24b8d2d924aa59a56333aee723e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Add failing autotest for QBS-1117Joerg Bornemann2017-05-311-16/+23
| | | | | | | Task-number: QBS-1117 Change-Id: If8b0e2edf6c36edec0410c90359505c5ed6c691f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix race condition when resolving projectsChristian Kandeler2017-05-302-1/+5
| | | | | | | | | Make sure we do not actually start resolving before returning to the code that created the job object. Otherwise signals could be missed. Change-Id: I2cf3db7c0777e2f6315c95ee15a21695f8b22c11 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make "bin" the libexec path on WindowsChristian Kandeler2017-05-303-4/+13
| | | | | | | | Otherwise, our binary distributions will not work out of the box, as the process launcher is not in the same place as the libraries. Change-Id: Ied375fa48e5c2cb037d3cb2108296126ee3be4cc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix broken handling of QtScriptTools modules in qbs-setup-qtJake Petroules2017-05-261-3/+3
| | | | | Change-Id: Id4c3ef26351c3af940e63ea848bbe9be38133837 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* When setting the build root, create the directory along the wayChristian Kandeler2017-05-201-0/+6
| | | | | | | | ... if necessary. Otherwise it makes no sense trying to get the canonical file path. Change-Id: I5a9c4237a8e4081c338ace685f20debb02f848fd Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix typoChristian Kandeler2017-05-201-1/+1
| | | | | Change-Id: I8abd480ed35bc17cf31100c07b8f8e6bd1352c4c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix string -> variant conversion in settings modelChristian Kandeler2017-05-171-5/+5
| | | | | | | | When storing the settings in the config-ui tool, the JS value undefined would erroneously get converted to the string "undefined". Change-Id: I1579a653bc3162afcdcce52983613ebd01b4c23a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Make autotests handle profiles with qbs.buildVariant == "release"Christian Kandeler2017-05-161-3/+5
| | | | | Change-Id: Ib8e820b1ef2a59880941baaffb04a94ea1ec31d9 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Qt templates: Do not set cpp.runtimeLibrary in QtModule.qbsChristian Kandeler2017-05-121-3/+0
| | | | | | | This is a scalar value. Setting it once in core.qbs is enough. Change-Id: I5856c447b8c72e2504f4d6e06a9e0199bba66751 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt modules: Take "static_runtime" config value into accountChristian Kandeler2017-05-102-0/+6
| | | | | | Change-Id: I247c4096912d1eb6ccbdea2df92bb4b294f35fb4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix JSSourceValue::clone()Christian Kandeler2017-05-094-0/+45
| | | | | | | | | | | For objects of type JSSourceValue::Alternative, we were mistakenly doing shallow copies, which meant that modules using Properties items could end up sharing the respective values between products, rather than each of them getting their own copy. Task-number: QBS-1121 Change-Id: I7b2b4b776772ac89fe6f08db0dba63b0c277d7ec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix size_t -> int conversion warning on MSVC (64 bit)Joerg Bornemann2017-05-081-1/+1
| | | | | Change-Id: Ic315f8048cf79598c5dcabf7e5a663e07abcca1f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Try harder to find out the correct location for evaluation errorsChristian Kandeler2017-05-049-27/+44
| | | | | | Task-number: QBS-946 Change-Id: I2fb5d573f7caf44f96fd4a96fd5069a44cdfb16a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt.qml: Link against QML plugins when using a static QtChristian Kandeler2017-04-284-3/+171
| | | | | | Task-number: QBS-1121 Change-Id: Id1da9786d4535a350eed72062848c2745cf8a73b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* API: Catch error from ProductInstallerChristian Kandeler2017-04-281-5/+10
| | | | | | | | | ... and emit a warning. This is for the resolve context. On actual installation, a proper error will still be thrown. Task-number: QBS-1122 Change-Id: I7d2e59ebcb18bc49ce0d3cf670fd64d4b5e171fd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Support command files in cpp.{static,dynamic}LibrariesChristian Kandeler2017-04-281-1/+12
| | | | | | | We will make use of that in a follow-up patch. Change-Id: I1fb6ca0938bbcc6f53bd0046761023a1b8563949 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Qt support: Scan also cpp files for Q_PLUGIN_METADATAChristian Kandeler2017-04-282-3/+8
| | | | | | | For some reason, that was only done for headers. Change-Id: Ia5d57cb68efdda0e1288fea3bd285e656b24b94b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* libqtprofilesetup: Support default QPA detection also in dev buildsChristian Kandeler2017-04-271-16/+33
| | | | | | | In a developer build, qtgui-config.h is a forwarding header. Change-Id: I7f5747503174eaf04ef96dcd6c6bc70c303b37f7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Fix "defined" appearing on RHS of macro definitionChristian Kandeler2017-04-271-3/+9
| | | | | | Change-Id: I2528aa1e2c083cf79ca18d5d06848ec3c7840b25 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* libqtprofilesetup: Add a dedicated template file for Qt.qmlChristian Kandeler2017-04-213-0/+34
| | | | | | | A follow-up patch will add custom content. Change-Id: I0c41d7158a3e1bb24dd31f11be19f9bd9cdc5581 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* libqtprofilesetup: Turn "-pthread" into "-lpthread"Christian Kandeler2017-04-201-1/+5
| | | | | | | | | | Otherwise we get errors, because we interpret generic options as linker flags, but -pthread is a driver option. Add a warning for all other "raw" options encountered on the right-hand side of QMAKE_PRL_LIBS, as those are not expected there. Change-Id: If4555caff886c691bddf3ee17bbe7490f9b8fc12 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix undefined behavior in tst_toolsChristian Kandeler2017-04-061-6/+0
| | | | | | | | | It is not allowed to compare iterators from different containers, and now that we use std::vector rather than QVector to back the Set class, this actually hits us with MSVC. Change-Id: I6b63d5ac341cb68efb87ee2a2f61f11974e621d5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* macOS: Use clock_gettime() only if it's supportedChristian Kandeler2017-04-051-1/+2
| | | | | | | | ... on the minimum deployment target. Change-Id: I19ea185bb1db7c6570d52689ecda5b9a95f02a95 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Launcher socket: Replace an assertion with a proper checkChristian Kandeler2017-04-041-1/+2
| | | | | | | | Calls to sendData() can legitimately come in even after the socket has failed, because the potential callers live in a different thread. Change-Id: I6bfdf20e723ebe089bb9e49d294ae434eefeabbc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Improve the error message for a crashed process launcherChristian Kandeler2017-04-041-4/+2
| | | | | | | | | | It used to just say "Process crashed" with no context. Also get rid of an unneeded check when emitting the associated error signal. Change-Id: I483342e4f97fadca7105099adb1f163dfbbfc5be Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.7 into 1.8Christian Kandeler2017-04-041-3/+3
|\ | | | | | | Change-Id: I98b4595eba11bf78d047a61a4830e83116b61d44
| * Fix ScriptEngine::PropertyCacheKey1.7Christian Kandeler2017-04-041-3/+3
| | | | | | | | | | | | | | | | The members of this class must not be references, as its objects are not temporary. Change-Id: I9bd4263079a365f5ffda606d8c8db27b370a1a24 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix build of processlauncher with older Windows SDKsJoerg Bornemann2017-04-041-1/+1
| | | | | | | | | | Change-Id: I6f59c16c5a26ab700496b81c5c9784f679d2db5c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Process launcher: Work around platform-specific QLocalSocket behaviorChristian Kandeler2017-04-042-1/+10
| | | | | | | | | | | | | | | | | | When the peer disconnects, we get QLocalSocket::PeerClosedError on Unix, but not on Windows. So also connect to the disconnected() signal. Change-Id: I42b9fdf0f720c32c96fc70dd29b651c547f2ead0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix hang after Ctrl-C on WindowsJoerg Bornemann2017-04-041-0/+14
| | | | | | | | | | | | | | | | | | The processlauncher must ignore Ctrl-C/Ctrl-Break on Windows. It will be shut down by its parent process, which is not prepared for the launcher to suddenly disappear. Change-Id: I63a9bcf84bafcb874e0165edf5d127d66784f071 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>