summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* introduce class BuildGraphNodedynablasterJoerg Bornemann2013-11-2752-786/+2215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support different types of nodes in the build graph, we introduce the base class BuildGraphNode. Artifact now derives from BuildGraphNode. A - yet unused - RuleNode class is introduced that represents a rule in the build graph. Change-Id: Ie1ad5e7a9e65bfd5f99d3e824737516053de0f94 ***new artifacts hash in ProductBuildData Change-Id: I50521ec64f734bfb3662759076fa5e7912ac084e ***automoc fixup Change-Id: Ie2bb228ae38d63deccc600d67d283bc3beda9fec slightly nicer rule debug output Change-Id: I60ddef73cd7f0a67055f2d56e6dbe7fa45ddd450 create RuleNode objects and add them to roots Change-Id: I51a0f89b98cda524d34888ab758d7bd397d82f00 ***execute rule nodes on build Change-Id: I291c32868cd982e37393d6bc8d696f2b63fbff50 ***ArtifactSet::fromNodeSet Change-Id: I7586bcfbe43406c22b1ee1a1fd826beaa247164f ***update after rebase Change-Id: I5f73afc80b746b11eeb83aeadf29c2358accbab8 ***phonytarget Change-Id: I587b7e072e54b866e8d5ea37c874e6a8baa550e0 update after rebase Change-Id: I6017c0cbe9244fea04d513f53e3a2a85092bf962 skip nodes early We must skip Building and Built nodes. m_leaves can contain duplicates now. Change-Id: If275106a47c403a455103f4deeb20049548007f5 debug message Change-Id: I90e238eef72a8a02fb0a9f2c77715f5f15c1442d disable phony thingy Change-Id: I7bb60b850b96b65ab738c11e96c3a84cbe58d2f7 connect each output of a rule to the rule itself Change-Id: I159d76c4b63094058cc9a07ccc2d0b67c7ce06e6 TagScanner Change-Id: I4741e48cd674c0ca830ee1b4d05b59a8c542694f TagScanner deps Change-Id: If3e43a7ac25616cd151229684a085ac8ee787645 update after rebase Change-Id: I58d49a5ed1049a17733fc2154588f12c1cda53e6 only root tag scanners in product Change-Id: Ia94732a5632156a5ec3c5518c9596cd4cefac105 run TagScanners Change-Id: I869a183f2da23a43957a6df45dc5a1b30b10af92 TagScannerRunner Change-Id: Id3c5fac73e6fb84e56d6ab1d48a959f3677f7a67 crash fix Change-Id: Ie3c26dbed41ab4615915a08913c495868c3a8910 more TagScanRunner Change-Id: I80b79f101c0f4d802fb4f6515c0848e369fed066 handle removal of filetags Change-Id: Icdd8d05c2e26953f7b12d968aa5dfcc23928b9ba Qt4 build fix Change-Id: Ie5fcb64e36ddc5004003183bea7243536bc8ab15 do not waste space with type information Change-Id: I7b9354e6fceead228ba335723b9addeb701bef56 update nodes that must get new transformers Change-Id: I06cd7ffe606ae643393350c5959ef6475343929f update after rebase Change-Id: If080e664972f2950c12fd800a3e4b521e65dca3a only run tag scanners on changed sources And do not call RulesApplicator in bgloader. Change-Id: I5140c91c79a842dab933ad7b328100bdec13cb10 Conflicts: src/lib/buildgraph/buildgraphloader.cpp sketch of moc tagscanners impl Change-Id: I7736c2da1b1742bc3556ef660c163e6c32cbd4c9 Conflicts: share/qbs/modules/Qt/core/core.qbs MocTagScanner Change-Id: I87199e8f355b8b20cf2387f4d4190a20bddae0db fix lib.qbs Change-Id: Ibcb5bc290d3839b04828f8c9b155577634bcc9e4 moctagscanner split Change-Id: Iace5d48483c02b5d33d9ccd54ac07162bfc09d27
* Support specifying the Qbs build directory as a command line option.Jake Petroules2013-11-2612-19/+136
| | | | | | | | | Also supports changing the default build directory ('.') using the 'preferences.defaultBuildDirectory' property. Task-number: QBS-462 Change-Id: Id3d05d2f5b14197bd3af2e7f9d55bdd263809716 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Lock the build graph while jobs are running.Christian Kandeler2013-11-258-4/+61
| | | | | | | | | | | | | | All jobs except setting up the project are mutually exclusive, and it is also forbidden to change the project internally while they are going on. Currently, ignoring this requirement leads to undefined behavior. Since we can detect such a condition and react in a defined way, we should do it. Note: This is about the API and the in-memory build graph, not about competing accesses to the stored build graph from different processes. That's a different (and more difficult) problem. Change-Id: I2d8a715334b2b73b4f4d32781d0b4f83b1612d40 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* API: Add the ability to remove groups.Christian Kandeler2013-11-255-53/+187
| | | | | Change-Id: Ic0d7a9f4976e87ab1894bb3a34372c0a27b087fe Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* API: Allow to remove files from a product.Christian Kandeler2013-11-258-84/+353
| | | | | | | Task-number: QBS-20 Change-Id: Ia8b8c4745e8e68ec219e16876fb630d02453425b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-11-2222-1/+1859
|\ | | | | | | Change-Id: Iad2ee611da1bc063a3345f0df0c5cdcba8078fd6
| * fix regression introduced in e0a8ec89Joerg Bornemann2013-11-223-1/+12
| | | | | | | | | | | | | | | | | | Accessing module properties in Group.condition didn't work anymore. We must first propagate the modules to the group, then evaluate the condition. Change-Id: Id3eb799faf91f449740c8213671e32af47683c3f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Add iOS equivalent of CocoaApplication example.Jake Petroules2013-11-2219-0/+1847
| | | | | | | | | | Change-Id: I4f1ad74617d3326001d49e67e1de7e308ab12eff Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Rename OsxProbe to XcodeProbe.Jake Petroules2013-11-225-22/+22
| | | | | | | | | | | | | | This name is more accurate and more consistent with e.g. MsvcProbe. Change-Id: I7694da8070dba80178db733c434eb4bd777cc469 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-11-2219-13/+124
|\ \ | |/ | | | | | | | | | | | | | | Conflicts: src/lib/language/moduleloader.cpp src/lib/language/tst_language.cpp src/lib/language/tst_language.h Change-Id: Iaaf4e015a234cdd9f51630ad218daec1b83b2a84
| * Fix minor issues in the CocoaApplication example.Jake Petroules2013-11-213-2/+6
| | | | | | | | | | Change-Id: Idd2a49381f013710d72e05d9b1781b47ce70750f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Take the qbs.install* properties into account when change tracking.Christian Kandeler2013-11-217-0/+72
| | | | | | | | | | | | | | | | | | | | | | These are currently ignored, because we only look for properties that were requested in prepare scripts. This does not typically happen for installation parameters, but since they end up in the output artifacts, changes to them still require re-setting up the respective build data. Task-number: QBS-359 Change-Id: I571cb4c1a02ea790ddde2f244136c6a0fd6fb627 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Fix settings export.Christian Kandeler2013-11-211-2/+4
| | | | | | | | | | | | | | The current code does not work for list values. Change-Id: I21ae1dcdc1185c48bbccc1ed94b31259f41fb5a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * evaluate qbsSearchPaths after the item has been fully set upJoerg Bornemann2013-11-204-5/+29
| | | | | | | | | | | | | | | | | | This makes sure that builtin functions like qbs.getenv can be called in qbsSearchPaths. Task-number: QBS-463 Change-Id: I74d50f25fd7e62663a5680741b22bc27db8ea80f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Let cpp.linkerName default to cpp.compilerName for gcc-like compilers.Christian Kandeler2013-11-201-1/+1
| | | | | | | | | | | | | | | | | | The hardcoded default value might not be the right one in all cases (e.g. mingw). This solution is better than setting the linker name in detect-toolchains, because it will also work with existing profiles. Change-Id: Ib658090218b3191a6f554ea397c689a94c804c61 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * allow invalid bindings in disabled groupsJoerg Bornemann2013-11-193-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression introduced in 7f83ff024e1fe56c71d193a95cc9af988c12660d. It's now valid again to do something like Group { condition: qbs.targetOS.contains("haiku") cpp.specialHaikuOption: "yes, please" } Task-number: QBS-409 Change-Id: I693df9202603c9af7fd7482fa537ed1fb16591a7 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Fix check for qbs library type.Christian Kandeler2013-11-182-2/+2
| | | | | | | | | | | | | | | | | | | | Qt 5 no longer guarantees that "shared" or "static" appear in the CONFIG variable. So assume "shared" whenever "static" is not set. Change-Id: I9f9f71d4aeacd4c083842a01458fdd25a9980523 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | API: Allow adding files to a group with a directory prefix.Christian Kandeler2013-11-215-16/+45
| | | | | | | | | | | | | | This case is not problematic. Change-Id: I388df6180b231364a8e185eb85aee5adff417965 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | API: Allow adding to a non-literal files list.Christian Kandeler2013-11-212-11/+29
| | | | | | | | | | Change-Id: I03153c3ace25c28fbd8490a4e054772b3112a867 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix compilation with Qt 4.Christian Kandeler2013-11-201-1/+2
| | | | | | | | | | Change-Id: I6e3a10682625765a2b64c44adbb2c1c8cf988314 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Add API for adding groups and files.Christian Kandeler2013-11-2023-44/+932
| | | | | | | | | | | | | | This is a necessary feature for proper IDE support. Change-Id: I296beb5beae514f70babf3da1b5544726e9df82e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Make MSVC manifest embedding preparation command silent.Christian Kandeler2013-11-201-0/+1
| | | | | | | | | | | | | | It does not warrant an output. Change-Id: I9b01775c8a1a11cf81f0b857c8070d24b18ef5ed Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix group prefix bug.Christian Kandeler2013-11-191-4/+3
| | | | | | | | | | | | | | | | e32f9bf66f023669a748046fae9c6d030deef9a0 was incomplete. Change-Id: Ie7c26658c1b44b8a66bd199e4ef3d88f3ea598f2 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Centralize determination of endianness.Jake Petroules2013-11-194-14/+30
| | | | | | | | | | Change-Id: Ia99ed4de2a07fa8959301a50e41cdb0367de46ea Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Store information about file tags and prefix in the ResolvedGroup class.Christian Kandeler2013-11-184-8/+18
| | | | | | | | | | | | | | This is needed for adding files at run time. Change-Id: I71b8a28b9dd63fab2162bbc6df6b91b953576e04 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Turn NSIS manual test into an autotest.Jake Petroules2013-11-185-0/+42
| | | | | | | | | | Change-Id: Ic8db2f80e1b6ebdad61032b3bcd8c8c986b62614 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Replace the last occurrences of FileTagger.pattern with patterns.Jake Petroules2013-11-183-6/+6
| | | | | | | | | | | | Change-Id: I5aec3b2e3d7f844c923acb7950300ac0884cc829 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | prioritize artifacts by product when buildingJoerg Bornemann2013-11-143-11/+72
| | | | | | | | | | | | | | | | | | | | To prevent disk cache misses, esp. when using precompiled headers, we're prioritizing the artifacts we're building by product. Task-number: QBS-460 Change-Id: Iff2373147c2fe6f86ac79c9785c8c89260aba5b4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Fix the condition for the WiX and NSIS imports.Jake Petroules2013-11-143-3/+3
| | | | | | | | | | Change-Id: I458175a3462907a1b9b0d3bb83533207557c6517 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix a number of problems with the NSIS module.Jake Petroules2013-11-143-35/+49
| | | | | | | | | | | | | | | | | | | | | | - Add support for building installers outside of Windows. - Add missing qbs. qualifiers - Fix compressor handling Task-number: QBS-414 Change-Id: I1df290d5dd79cb2fea9ab27feefdde21a46c69d7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Fix api.pri.Christian Kandeler2013-11-141-2/+2
| | | | | | | | | | | | Change-Id: I358a423e5a4e97f96b127fa94fbccaf664c77de6 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Make Windows files executable through Wine using the run command.Jake Petroules2013-11-141-5/+23
| | | | | | | | | | Change-Id: Ia14593d9a49169685a3e25565264342aa457778e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-11-1426-38/+281
|\ \ | |/ | | | | Change-Id: I7475c4a71c15c83c59400c44ef96d73d15caea58
| * fix filetags language test for 1.1 branchJoerg Bornemann2013-11-141-1/+1
| | | | | | | | | | Change-Id: I29ace9cb84da2ba2e8eb3be7df55f5a1794d5854 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * fix FileTagger application for other patterns than *.fooJoerg Bornemann2013-11-144-2/+14
| | | | | | | | | | | | | | | | | | fileTagsForFileName must be called with a file *name*, not the full file path. Task-number: QBS-459 Change-Id: I68c2910c78c4a7cc1ac53100e1fec57faaa46272 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * fix 'Unexpected item type' error messageJoerg Bornemann2013-11-146-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The property declaration check shadowed this error. An erroneous file like Appliaction { // mis-spelled Application name: "foo" } Yielded the error "undeclared property 'name'", when it should say "I know nothing about Appliaction". Change-Id: I20d03b13a3fa02b6539950a50d7bae1c5acbfbac Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * build fixJoerg Bornemann2013-11-131-1/+1
| | | | | | | | | | | | Change-Id: I05dcf2d3a4e4f1e20081469382faf1912f676f8d Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * detect-toolchains: set qbs.endianness for MinGWJoerg Bornemann2013-11-131-0/+2
| | | | | | | | | | | | | | | | Task-number: QBS-446 Change-Id: I4a1b88d1657e7ec71dc6e41e690f00dc606d3931 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * detect-toolchains: set qbs.architecture for MinGWJoerg Bornemann2013-11-131-0/+7
| | | | | | | | | | | | | | | | Task-number: QBS-446 Change-Id: I1c67c780dad5b5cc0444ede950809ae3cf71c67a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * Docs: fix cpp.compilerPath descriptionJoerg Bornemann2013-11-131-1/+1
| | | | | | | | | | Change-Id: If3bda04c2bb5fe77bcc0160354387ef538d40537 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * introduce cpp.linkerName and cpp.linkerPathJoerg Bornemann2013-11-135-3/+26
| | | | | | | | | | | | | | Like the compilerName/Path, the linker must be configurable. Change-Id: I50f9511dedbff29dbf55b41b96e213f238be187f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * translate multipart module names in moduleProperty functionJoerg Bornemann2013-11-123-1/+15
| | | | | | | | | | | | | | Task-number: QBS-452 Change-Id: Ibd83e1866aee0e2922bfa6f2541151b58fb24ea5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Fix bug in rescuing build data.Christian Kandeler2013-11-112-9/+18
| | | | | | | | | | | | | | | | | | | | We tried to get information about an artifact's children from the artifact itself. However, that artifact could have gotten disconnected along the way and not know anything about its children anymore. We must therefore save such information in an extra data structure. Change-Id: Id2043f97e857bf8779184e88b1425fdcf85e3f2e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * don't throw exceptions through script engineJoerg Bornemann2013-11-111-2/+11
| | | | | | | | | | | | | | Task-number: QBS-452 Change-Id: I199c77236196f60cad485999f7b909976a6dd90d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * fix assembly autotest for clang profilesJoerg Bornemann2013-11-111-1/+1
| | | | | | | | | | | | | | | | | | qbs.toolchain is a string list. The old check only worked if toolchain consisted exactly of the element "gcc". Change-Id: Ic439261952035e7b465729b6b0710ac9198c98b8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
| * Take rules into account when tracking changes.Christian Kandeler2013-11-118-12/+161
| | | | | | | | | | | | | | | | | | This will cause rebuilding if, for example, a rule in a module that the product uses gets its source code changed (and the rule is actually being used). Change-Id: I009685c85fcc8fa0ae3ecc7c32194685a1558104 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | fix deprecation warnings in GCC cpp moduleJoerg Bornemann2013-11-141-3/+3
| | | | | | | | | | | | | | Use FileTagger.patterns instead of FileTagger.pattern. Change-Id: Ib02d9ef029588dc20337459f0aa514b5dfc6dd90 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Import code for rewriting QML files.Christian Kandeler2013-11-147-2/+1365
| | | | | | | | | | | | | | | | This comes from Qt Creator and is needed for API functionality such as adding files to a project. Change-Id: Ia5ecef1d5a5d937cf3fbf27448abbce051e977de Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Rethrow exceptionTobias Hunger2013-11-131-1/+1
| | | | | | | | | | | | | | ... instead of throwing a copy Change-Id: Ic4a5701d72158d3ef67106493b22d528c890654a Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | Doc: Use the \QBS macro for the product nameLeena Miettinen2013-11-1111-54/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures that the name is always written in the same way and makes it easy to change, as only the value of the macro needs to be changed. Removed the product name from most titles as macros cannot be used in titles. It would break linking to titles. Please always use the macro in the future. Change-Id: I116abffc316edbb861034f5e431ca8e27b5a5d03 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>