aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Install missing public header1.8Joerg Bornemann2017-07-102-2/+3
| | | | | | | | Since commit 7ccc08f3, tools/version.h is needed by a public header. It must be installed. Change-Id: I79cb243463abb9390a581144467b3cd89f46eadd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Recognize Visual Studio 2017Jake Petroules2017-06-291-1/+1
| | | | | | | This is needed for it to show up in the Visual Studio generators list. Change-Id: Ia98cca1ab7f3219c4e3194fb3f06ee8a6353d9c5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove unneeded methodJake Petroules2017-06-292-7/+0
| | | | | | | | The generators do not use it, and the cpp module determines the compiler version automatically these days. Change-Id: Icfe99bfa33d39ccea53149a5a1db2bb4089b0525 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix running bundled applications on Apple platformsJake Petroules2017-06-272-18/+13
| | | | | | | | | | Previously, Qbs would attempt to run the temporary copy of the application executable in the .tmp/ subdirectory of the product build directory. This patch corrects it so that it is run via the copy in the install root, or the actual bundle executable in the build directory. Change-Id: I988081e3f70ec52965e798c8193b75c2dcc4fdf9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>
* 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-061-1/+1
| | | | | 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>
* 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>
* 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-301-1/+4
| | | | | | | | 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>
* 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>
* 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>
* 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-281-0/+5
| | | | | | | For some reason, that was only done for headers. Change-Id: Ia5d57cb68efdda0e1288fea3bd285e656b24b94b Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
* 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>
* | 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 size_t -> int conversion warnings on MSVC (64bit)Orgad Shaneh2017-04-033-3/+3
| | | | | | | | | | Change-Id: I410e531fa3cebffb282350904a4caa3e5002fce2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Cumulate delayed product errorsJoerg Bornemann2017-04-034-5/+45
| | | | | | | | | | | | | | | | | | | | | | If a delayed error leads to other errors later on, we would output the later errors without showing the original - more important - delayed errors. Cumulate delayed product errors and pass them up the stack. Change-Id: Ibdfc6d3e301a80ef265792907b3e4a150a22ef8b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Allow running qbs without a profileChristian Kandeler2017-03-315-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | When no profile is given and no default one exists, simply use the modules' default values. The most relevant effect of this is that users can now build for the host platform by simply typing "qbs" without having done any manual setup, if there is a compiler in the PATH. [ChangeLog] It is no longer strictly required to provide a profile. Change-Id: Ifee09d2653dfbd4ea06c59248d78e376da2f217b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Replace all uses of QVector with std::vectorJake Petroules2017-03-2931-157/+165
| | | | | | | | | | Change-Id: Idd41fc4d9819649a85739f984862bed6480fddd5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Support readonly propertiesJoerg Bornemann2017-03-294-5/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog] The attempt of setting a read-only property within a qbs file now yields an error. It is still possible to override read-only properties from the command line. Task-number: QBS-1064 Change-Id: I0afe4272ac2fc14e51d5797da0bf1e2d7f3a3438 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Remove PropertyDeclaration::ListProperty flagJoerg Bornemann2017-03-292-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | This was never used, and the check was wrong such that every property that did *not* have the list<> type modifier was flagged. [ChangeLog] Properties with the list<> type modifier are not silently ignored anymore but yield an error. Change-Id: I6453f9f178f61fe6b0303d35f80e4fa8f14cb729 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Make Item::Modules an std::vectorJoerg Bornemann2017-03-233-14/+15
| | | | | | | | | | | | | | Item::Module is too big for being kept efficiently in a QList. Change-Id: I56d160a05cbf1d24038367969e89e8ee5e1b2110 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Add Item::ownProperty for symmetry and use it where appropriateJoerg Bornemann2017-03-235-5/+11
| | | | | | | | | | Change-Id: I721f0db1dde46eea9bf8de74a3052f76bd52dd4b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Use Item::hasOwnProperty where appropriateJoerg Bornemann2017-03-232-2/+2
| | | | | | | | | | Change-Id: I5a0108e4433f119d82e72b81e828ad0146a9ad74 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>