aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/executorjob.h
Commit message (Collapse)AuthorAgeFilesLines
* Apply fix-its for the missing override keywordIvan Komissarov2019-05-031-1/+1
| | | | | | | | Missing override is a warning in clang Change-Id: I90b899df37e690aebb942bffc65db54d9aa4050f Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix uninitialized variablesIvan Komissarov2019-05-021-5/+5
| | | | | | | | | This fixes most of clang analyzer warnings about uninitialized variables in ctors Change-Id: I879c785594307ed3fe7140588338a6b2a1e4db65 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for job poolsChristian Kandeler2018-08-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | Commands can now be assigned to an arbitrary job pool and a limit for the number of concurrently running jobs in such pools can be provided in a number of ways: - via the build command line: qbs --job-limits linker:1 - via the settings: qbs config preferences.jobLimit.linker 1 - in a project file: JobLimit { jobPool: "linker"; jobCount: 1 } We provide two job pools ourselves with the cpp module: "compiler" and "linker". [ChangeLog] Added the concept of job pools for limiting concurrent execution of commands by type Task-number: QBS-743 Change-Id: Ib3f361dbc73093e342bf0eba0daf2079a2b3a8ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Change style of #includes of Qt headersJake Petroules2017-01-041-1/+1
| | | | | | | | | | | | | | | | By using q<lowercase>.h headers, we become more bootstrap-friendly, as no full syncqt is required any more. In the same go, prefix all includes with the module name. This helps grep-based analysis of which parts of Qt are used and where. It's also consistent with Qt's public headers (where syncqt enforces the style). Testdata and examples are excluded from the change, as they are not relevant for bootstrapping. Change-Id: I9539b1d795e87fca6e5fc6c91acbb775b79208d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update license headersIikka Eklund2016-08-291-14/+23
| | | | | | | | | | Patch-set 1 includes *.h Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ib6cf3ac47dfba6dff262fded44bc952aef3bda8b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Merge remote-tracking branch 'origin/1.5'Joerg Bornemann2016-06-081-1/+1
|\ | | | | | | | | | | | | | | Conflicts: doc/reference/items/transformer.qdoc share/qbs/modules/cpp/GenericGCC.qbs Change-Id: I45560834560019b18274c373c45651eb8aadd206
| * Replace 'the Qt build suite' with 'Qbs' in copyright notices.Jake Petroules2016-06-061-1/+1
| | | | | | | | | | | | Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Use Qt5-style connectsOrgad Shaneh2016-06-071-2/+1
|/ | | | | | | The heavy lifting was done by clazy. Change-Id: Ibb13c517567b1b32bbda6d26225454d1b003934d Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* update license headersJoerg Bornemann2015-03-021-2/+2
| | | | | Change-Id: I36d825db3a5ef32c162c3063aab1e8a1f2696f4f Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Replace --show-command-lines with --command-echo-mode.Jake Petroules2015-02-251-1/+2
| | | | | | | | | | This allows users to hide command output entirely without changing the logging level. It is also used by the generator command to hide the dry run command "executions" it performs when creating the build graph for project generation. Change-Id: I27a64c8138521001f5b62473b4a3b4ff46d8ba25 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Merge branch '1.3' into 'master'Christian Kandeler2015-01-281-6/+6
|\ | | | | | | | | | | | | | | | | Conflicts: doc/reference/jsextensions/jsextensions-general.qdoc src/lib/corelib/language/evaluatorscriptclass.cpp src/lib/corelib/language/evaluatorscriptclass.h Change-Id: Ic9b77b56e8fc8bf93e0a553930757de8c93fed22
| * Update LicenseEike Ziller2015-01-261-6/+6
| | | | | | | | | | Change-Id: I092fca9f950de1ba38826c33b155f86feae2770b Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | add option to show command lines in build outputJoerg Bornemann2014-11-071-0/+1
|/ | | | | | | | | | With "qbs build --show-command-lines" one can suppress command descriptions and show actual command lines instead. Change-Id: I98328254bad7fb85036abb0525c5ad7e734110c7 Task-number: QBS-615 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* License update.Eike Ziller2014-10-161-7/+8
| | | | | | | Add LGPLv3 option. Change-Id: I8a63ad5e46a2701032b2103f791df4dec5b707e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Allow long-running commands to be canceled.Christian Kandeler2014-04-151-1/+0
| | | | | | | | | | At the moment, canceling a build waits for the current command to finish, which means that a badly behaving process or piece of JavaScript code can block qbs indefinitely. Task-number: QBS-552 Change-Id: I8ac23f068dd6083905a9681097da6b970c0b646b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Sanitize error/finished handling in executor jobs and command executors.Christian Kandeler2014-04-151-4/+2
| | | | | | | | | | | | | | | | The classes as they are now specify different signals for signaling failure and finishing. Some of these error() signals are followed by a finished() signal, others are not, which is just asking for trouble. Under certain circumstances there can also be several error() signals for one and the same process. In fact, there is almost certainly a race condition there regarding executor job re-use. This patch changes the design so that there is always exactly one finished() signal that carries an error status. For some non-fatal problems that higher-level code cannot sensibly handle, we now log a warning instead of emitting an error signal. Change-Id: I9e3df11564e7337ad766ca0d009303367d43c4ec Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not report success from canceled jobs.Christian Kandeler2014-04-091-1/+3
| | | | | | | | | | | | | | | | | | | | | The current behavior leads to "interesting" problems. For example: - Consider a rule with two commands. - The associated transformer gets executed via an ExecutorJob. - Some other command in a different transformer fails, so the Executor calls cancel() on the ExecutorJob. Let's say this happens while the first command is running. - The ExecutorJob now waits for the first command to finish and then reports a successful finish to the Executor. This is the actual bug. - The Executor updates the timestamp for all artifacts to the current time, even though only one was actually written. - On the next run, the command is skipped, even though one artifact is not actually up to date. This patch makes sure that these timestamp updates do not happen for artifacts of transformers in canceled jobs, unless all commands were successfully run. Change-Id: Idccf3e7cc8fe67b7655cd032c70bf9f074400206 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* De-obfuscate Executor.Christian Kandeler2014-02-181-1/+1
| | | | | | | Transformers are what jobs work on, not artifacts. Change-Id: Ib267ec247dd6d165347511f0a0fdb3db00c58832 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move Qt profile setup into a dedicated library.Christian Kandeler2014-01-101-0/+88
Otherwise all changes to the implementation will have to be duplicated in IDEs. Change-Id: I61e6d4fa1ee9b724eb5d9de9f233dc915a6c8bc3 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>