summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/buildgraph.pri
Commit message (Collapse)AuthorAgeFilesLines
* introduce class BuildGraphNodedynablasterJoerg Bornemann2013-11-271-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* sort files in buildgraph.priJoerg Bornemann2013-08-021-36/+36
| | | | | Change-Id: I46d2963aed1be00a79a129f61f447a4685e56055 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* move file dependencies to dedicated classJoerg Bornemann2013-08-011-0/+2
| | | | | | | | | File dependencies are a very simple variant of artifact. We save space and structure the code more clearly by introducing the FileDependency class. Change-Id: I36b95794f9d6d3d739ea4836ebc831848a89de98 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Move BuildGraphLoader into its own set of files.Christian Kandeler2013-06-191-0/+2
| | | | | Change-Id: Icd11a83337a34d3544bfd59c1ab93c9d2ccb4dea Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove structural redundancy in project and product classes.Christian Kandeler2013-04-121-4/+4
| | | | | | | | | | | | | | | We had two project classes, each holding a list of products that was structurally identical, except that no BuildProduct object existed for a disabled ResolvedProduct. The same kind of duplication also happened for product dependencies. This patch gets rid of these parallel structures. BuildProject and BuildProduct are largely being demoted to data holders and are aggregated by ResolvedProject and ResolvedProduct, respectively. The resulting project structure should be easier to understand and maintain. Change-Id: I68beef60b9e0d62258f6a8337c9015864e18bd80 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Allow fine-grained tuning of installation.Christian Kandeler2013-03-131-3/+5
| | | | | | | | | | - Potentially different prefixes for libs and plugins/modules. - Make it possible to disable installation of development files (headers, qbscore.lib on Windows). Change-Id: Ia153d17835f9f1b8d802b23c3689a2f72f656e50 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make project installable on Unix/Linux.Christian Kandeler2013-02-151-0/+4
| | | | | | | | | - Add installation rules. - Adapt rpath and some publicly visible #includes to be relocatable. Change-Id: Ie3560bbf2a5ec4d41e5e3064a95a5273f683df08 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make internal unit tests optional.Christian Kandeler2013-02-131-4/+7
| | | | | | | | | The respective code will not be compiled into the library unless "all_tests" is added to the qmake CONFIG variable. Change-Id: I45ab29666e3ce55baa4c83b3f4e1821258ba1b64 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Build a shared library.Christian Kandeler2013-02-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | We don't want our code to be duplicated in memory for each application that uses it, so the library should not be linked statically. Some ramifications worth mentioning: - The unit tests had to be moved into the library, because otherwise we would need to export random internal symbols. This is why the patch appears so big. A follow-up patch should probably make compilation of tests optional, so the library can be deployed without unneeded code. - The DESTDIR of the auto test executables is now the same as the one of all other executables, so they can all use the dll on Windows without additional setup. - Some internal symbols were exported, namely: a) Logging-related stuff. This allows us to use a uniform logging approach in the library and in our command-line tools; I consider this acceptable. b) A handful of classes and functions currently needed by certain command-line tools. These seem more questionable to me and we should probably find a different way to implement the respective functionality. Change-Id: I9cd21e12cd622b55cf62f5e04ad398734410ede1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce the "install" command.Christian Kandeler2013-01-221-0/+2
| | | | | | | | | | | This decouples building and installing, e.g. allowing the latter to be executed by a privileged user to a system-wide directory. In addition, the ability to install build artifacts (typically executables or libraries) has been added. Change-Id: I28e725e4c1168eebe88e12c75e3d3e9f5fe28ca5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make it possible to mark the build artifacts as up to date ...Christian Kandeler2012-12-061-2/+4
| | | | | | | | ... without doing a build. Task-number: QBS-114 Change-Id: Idf8b2290310b491860575ae25344290d63756f2a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Split up buildgraph.h and buildgraph.cpp.Christian Kandeler2012-12-041-2/+8
| | | | | | | Move things to the appropriate places. Change-Id: I2f201ccdf9c465a8c3201e229629b756cc258495 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move engine-related functionality out of BuildGraph.Christian Kandeler2012-12-031-2/+4
| | | | | Change-Id: I5da16ea99bce3e6f737f37770fb0fe3e2e5c0214 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Reduce compile dependencies.Christian Kandeler2012-11-291-2/+2
| | | | | | | | | | | | | | | | | While it seems elegant at first glance to do typedefs in class scope, it has one serious drawback: Forward declarations become impossible unless they use the non-typedef'ed type name, which defeats the purpose. As a result, dozens of headers currently include language.h and buildgraph.h, even though they technically don't have to. Fix this by introducing special forward-declaring headers and doing the typedefs there, outside the class scope. Now changes to header files included in language.h or buildgraph.h don't ripple through half the project anymore. Along the way, also remove unneeded and potentially harmful INCLUDEPATH statements from various pri files. Change-Id: Ib50db850876955216db7f39b6099c32d1239092b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move cycle detection into its own class.Christian Kandeler2012-11-121-2/+4
| | | | | | | | | It has the characteristics of a visitor, so let's make it one. Also introduce test case. Change-Id: Ibfe14ca71268f73afe5e524fa1a15b3ab67058f1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix "clean" command.Christian Kandeler2012-11-081-2/+4
| | | | | | | | | - Was broken by recent build directory change. - Before that, just did a simple "rm -r" on the entire build directory, not taking selected products into account. Change-Id: I4554ebc365d163dd03b1b3faef4c527964adfa70 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add a progress indicator for the command-line client.Christian Kandeler2012-11-021-2/+4
| | | | | | | | | | This is considered useful especially for larger projects. Along the way, fix some progress observer problems uncovered by this addition. Change-Id: I520a50d74ca10a1a125b0c11318613c23ffc17d2 Task-number: QBS-156 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Split up class CommandExecutor.Christian Kandeler2012-10-221-2/+6
| | | | | | | | | | It currently combines the running of processes and Javascript commands, which are two completely different things. Put the respective functionality into dedicated classes and provide a common API via a base class. Change-Id: I65517fc6fa75c102c9029259ec9d96563b0a2a82 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move input artifact scanning into a dedicated class.Christian Kandeler2012-06-011-2/+4
| | | | | | | No functional changes. Change-Id: I48b1b71dae3c13c1dd167b11a88772474db6f06a Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Long live qbs!Joerg Bornemann2012-02-151-0/+26
Change-Id: I412793e868919a9ac99611616f292e7047f1ebcf