aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/projectresolver.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix unclean source file paths resulting from groups with prefixes.Christian Kandeler2014-08-071-0/+1
| | | | | | | | | | | | | Example: Group { prefix: "dir/" files: "../f.txt" } The file path would end up as "/build-dir/dir/../f.txt" after calling FileInfo::resolvePath(), when we expect a clean absolute path. Change-Id: I9a7edb94cdf0fd99ce2d61f362a57ff4b9a8d060 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Deprecate Artifact.condition.Christian Kandeler2014-08-051-1/+7
| | | | | | | | This never really worked. We have the outputArtifacts script for that now. Change-Id: I4c80ec1bcfcfe5a7e93edff1dfbd9a2139da3682 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing comma to error message.Christian Kandeler2014-07-311-1/+1
| | | | | Change-Id: I90b1b4dd35c6b2c625d11137e0f7d76d92641f72 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* API: Be smarter about adding files already matched by wildcards.Christian Kandeler2014-07-231-6/+4
| | | | | | | | | | | The project file does not need an update in this case. Actually, that would even lead to an error on the next project resolving, as the file would then be listed twice (once explicitly and once matched by a pattern). Task-number: QBS-653 Change-Id: If56969c36d1bba3f9194621690c2e1f25229ee9e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* introduce Project.minimumQbsVersionJoerg Bornemann2014-07-221-0/+32
| | | | | | | | | This property can be used to specify the minimum required QBS version of a project. Change-Id: I564f4298c060c3acf2f6221fb1d6978eda1dd1a5 Task-number: QBS-453 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* deprecate Artifact.fileName in favor of Artifact.filePathJoerg Bornemann2014-07-161-6/+45
| | | | | | | | This property is actually a file path, not a mere name. Task-number: QBS-579 Change-Id: I04e8f03eac97b5f86fe743a4923888a3d2a82c5d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* remove deprecated Product.additionalFileTagsJoerg Bornemann2014-07-151-11/+0
| | | | | Change-Id: I98b4ddc32266eaa83ece5ed4ba814d183206671e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* prohibit duplicate source files in enabled groupsJoerg Bornemann2014-07-101-1/+9
| | | | | | | | | | Having the same source files in more than one enabled group is considered an error. There's no proper way to define conflict resolution rules. Task-number: QBS-593 Change-Id: I93d25b7e3484ce3a4da4e10299e1a3bf10951ca2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make it possible to set profiles per product.Christian Kandeler2014-07-021-15/+16
| | | | | | | | | | | Use case 1: Build product A for architecture X and product B for architecture Y (e.g. host tools vs target libraries). Use case 2: Build product A for architectures X and Y and product B only for architecture X (e.g. Android multi-arch packages). Change-Id: I2eb721c37cdd12c298ee12bad60e21e94b04676b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Correctly handle overriding of file tags via an empty list.Christian Kandeler2014-07-021-1/+4
| | | | | | Task-number: QBS-633 Change-Id: I4bf750ff94d6fae38fb3fdb49de265caddcd789e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* show error location in Rule.ArtifactJoerg Bornemann2014-06-051-0/+1
| | | | | | | Change-Id: Ic492a3e7d7a28633f96e808680ef695d33eb79f2 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Sanitize the project setup API.Christian Kandeler2014-05-231-6/+12
| | | | | | | | | | | Ever since we introduced "overridden values", the setter for the build configuration has been pretty much an empty shell, containing only the build variant and the profile. We now make that explicit, resulting in a less confusing API that does not expect the caller to know how to encode profile and build variant information in a QVariantMap. Change-Id: I60183fc1884a884c9ceba34d7eb460c261be47ca Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix inheritance for Groups with the same fileTagsFilterJoerg Bornemann2014-05-191-0/+3
| | | | | | | | | Discard any Group with the same fileTagsFilter that was defined in a base file. Task-number: QBS-424 Change-Id: I51f0c317f36ae953cc3e777ed4e5426c9b6ddc9d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* yield error for conflicting GroupsJoerg Bornemann2014-05-161-0/+13
| | | | | | | | | Groups with the same fileTagsFilter that are defined in the same file yield an error now. Preparation to fix QBS-424. Change-Id: Ifa85a0b6c7c9ab19946b6e339d2771164e926378 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* make product.buildDirectory available in Probe itemJoerg Bornemann2014-05-141-8/+6
| | | | | | | | | | As a consequence product.name is evaluated very early and cannot depend on module properties and such. Autotests that used product.name as verification script had to be adjusted accordingly. Task-number: QBS-393 Change-Id: I62ae1a92313af54d9eb15e88b7457388584f7556 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove superfluous property assignmentJoerg Bornemann2014-05-131-2/+0
| | | | | | | This buildDirectory assignment is overwritten some lines below. Change-Id: I54c4b198c0f4efcb45ffc358ab349fc976cade00 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Introduce sensible build directory values.Christian Kandeler2014-05-131-4/+14
| | | | | | | | | | | | | | | | Currently, all products share the same build directory, and rules are responsible for making their artifact file paths unique, which is annoying for module authors and introduces lots of code duplication. Instead, make the product build directories unique and let these directories be the base directory of relative artifact file paths. Also export the top-level build dir as project.buildDirectory to the JavaScript side so rules can refer to that one if necessary. Task-number: QBS-567 Change-Id: I257d37cad01ec6dece3e214799b917149677d80c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make product.sourceDirectory available in Probe itemJoerg Bornemann2014-05-121-4/+1
| | | | | | Task-number: QBS-393 Change-Id: I33c588fd0c00231db2ca4fa4f9b70a5b1f5bc18f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove deprecated Module.additionalProductFileTagsJoerg Bornemann2014-04-141-9/+0
| | | | | Change-Id: I697a9cd83d22aaac6116c53aa0281e4ed6fc73c7 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove deprecated FileTagger.patternJoerg Bornemann2014-04-141-14/+4
| | | | | Change-Id: I111033e2b7d551caff289679513514d9636014ee Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Do not report an error for a non-existing file in a disabled group.Christian Kandeler2014-03-311-7/+9
| | | | | | | Task-number: QBS-470 Change-Id: I839c5778bbc37ffb907315487bd1a072ba9f1791 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* turn JSSourceValue::m_sourceCode into a QStringRefJoerg Bornemann2014-03-251-4/+4
| | | | | Change-Id: Ie79c4dc2cc998558f826133a2a8bf08a73190f2d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* make PropertyDeclaration implicitly sharedJoerg Bornemann2014-03-251-8/+8
| | | | | Change-Id: Iad2f353371bd64ce8138dc86ed1f07ac994cf237 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* use Item::PropertyDeclarationMap where appropriateJoerg Bornemann2014-03-251-1/+1
| | | | | Change-Id: Id1449ecbc4b3e3f4302ccb3a5f7c397a58937456 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add new qml item ScannerMaxim Zaitsev2014-03-121-0/+18
| | | | | | | This item allows to write custom dependency scanners in modules. Change-Id: I6cb49969973ee29896d1909e7a16bf5da50f8aef Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* give FileContext and ResolvedFileContext a common baseJoerg Bornemann2014-02-281-6/+2
| | | | | Change-Id: I76f0e5e0b9f99a6f33c3381436ee6c4879e36a68 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* move ResolvedFileContext to separate filesJoerg Bornemann2014-02-281-0/+1
| | | | | Change-Id: I066ea8aa826c254de82b9591ab4b6eec23665b0d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Do not share product properties with artifacts.Christian Kandeler2014-02-261-11/+15
| | | | | | | | | | | | | | Since products potentially share their property maps with their groups, artifacts get product properties such as "name" and "destinationDirectory". This is strange and can mess with change tracking. Therefore we split up the product's property map in two: One contains the module properties and is potentially shared with groups, the other has the actual product properties and is not shared. This patch also removes a workaround from an autotest that was required until now to prevent a false positive in change tracking. Change-Id: Ia1f1f0ce32669fd893a99f809753df526bf1442a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* support transformers with an unknown number of outputsJoerg Bornemann2014-02-131-1/+19
| | | | | | | | | | | | | | | | To support different types of nodes in the build graph, we introduce the base class BuildGraphNode. Artifact now derives from BuildGraphNode. A RuleNode class is introduced that represents a rule in the build graph. Rules are applied in the build phase and not in a pre-build phase anymore. The handling of moc has been revisited. The fixed automoc pre-build phase is no more. This is the squashed merge of a feature branch. Task-number: QBS-370 Change-Id: If27cdc51cba8c9542e4282c2caa456faa723aeff Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix variable name in createSourceArtifactJoerg Bornemann2014-02-041-2/+2
| | | | | Change-Id: I61d767dd9b1bd50d284d3f43d4c688d907f84337 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix handling additionalProductFileTagsMaxim Zaitsev2014-01-291-4/+24
| | | | | | | | | | | | Rules that produce additionalProductFileTags added to the rule graph, but they are not reachable from the product. 'additionalProductFileTags' declared deprecated in product scope, because it's enough to use 'Product.type' property, as it can hold the list of file tags). 'Module.additionalProductFileTags' property renamed to 'additionalProductTypes' as it's more appropriate name. Change-Id: I6e55199162b29dace5bbbad7e2c9eda46f47f424 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* rename ArtifactList to ArtifactSetJoerg Bornemann2014-01-161-2/+2
| | | | | | | Now the name reflects reality. Change-Id: I3997b99de86819c973434240103d25d6915d838b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Prepare for using QT_NO_CAST_FROM/TO_ASCII.Jake Petroules2014-01-141-20/+26
| | | | | Change-Id: Ib39e49e896cbddf5a5bd851088500991d962355a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* rename Rule::script to prepareScriptJoerg Bornemann2014-01-141-1/+1
| | | | | | | | Rule might get another script besides the prepare script. This will reduce the diff size for a future patch. Change-Id: I28755cc0bb30d429108b63c9e9db4cc4c93573b1 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Move Qt profile setup into a dedicated library.Christian Kandeler2014-01-101-0/+999
Otherwise all changes to the implementation will have to be duplicated in IDEs. Change-Id: I61e6d4fa1ee9b724eb5d9de9f233dc915a6c8bc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>