summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/jscommandexecutor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* fix calling of prepare script functionJoerg Bornemann2013-09-241-0/+1
| | | | | | | | | The scope that contains inputs, outputs and friends was bound to the function object, which is wrong when applying the function later on. Instead, we're passing those variables as function arguments now. Change-Id: I7ad7b6a742091fae889ed57b7c9cbceea4a2ead2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* introduce Transformer::product()Joerg Bornemann2013-08-121-4/+1
| | | | | | | | Simplifies the calling code. Remove pointless nullpointer check from jscommandexecutor. Change-Id: I867181d2b750f32f04376ce860f5dee6555d3e33 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Use the canonical way of moc file inclusion.Christian Kandeler2013-08-081-1/+1
| | | | | Change-Id: I8fbd49fb0997338019d9f8cb85155cfc673eac16 Reviewed-by: Christian Stenger <christian.stenger@digia.com>
* make the line number in JS command errors less wrongJoerg Bornemann2013-07-241-4/+2
| | | | | Change-Id: Ib41691daf497d6587cb1d37b8a81728de4043e39 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* simplify JS command executionJoerg Bornemann2013-07-231-18/+11
| | | | | | | | | Do not modify the global object. Use pushScope/popScope instead of pushContext/popContext. Remove a futile caching attempt. Change-Id: I2c7440356db13db25c1770e9461ef6247d1bb7dc Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove superfluous engine mappingJoerg Bornemann2013-07-231-21/+7
| | | | | | | | JsCommandExecutorThreadObject is running in exactly one thread now. There's no need to save engines per thread anymore. Change-Id: I9328cf840789131397e7713efdc105f0b56aeee8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove QtConcurrent dependency from JsCommandExecutorJoerg Bornemann2013-07-221-40/+63
| | | | | | | | | | | | Fewer dependencies makes bootstrapping easier. Also, this prevents a potential deadlock on single core machines when the executor is run through QtConcurrent, like in Qt Creator. Task-number: QBS-68 Task-number: QBS-307 Change-Id: Id5383a2b5a6bf0d7880f0969e3730c3606e8b1d9 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make built-in JavaScript extensions available on demand.Christian Kandeler2013-07-031-9/+0
| | | | | | | | | | | | This entails the following: - Project files can get access to built-in extensions in all contexts via import statements such as "import qbs.TextFile". - In turn, the automatic injection of these extensions in rules and probes no longer happens, i.e. one always has to explicitly import the required extension. Change-Id: Ib1e42c078354c564e417f80dd47897c7f41e7569 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add XmlDom generator/parser to JavaScriptBogDan Vatra2013-06-241-0/+2
| | | | | | | Task-number: QBS-55 Change-Id: I53e9c0c2a784851244219dde9ffe752816e65d0a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Some minor improvements to the Error class.Christian Kandeler2013-06-181-1/+1
| | | | | | | | | | | | | - Rename "Error" to "ErrorInfo", to make clear that this class conveys information about errors, including that there might not actually be one. - Rename "ErrorData" to "ErrorItem", to make clear that these are parts of an aggregate structure. - Introduce ErrorInfo::hasError() for quick checking of whether an error occurred. Change-Id: Icea6ed5240d6d14bd30e9cea189c6babd7004792 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Use private implementation in API classes.Christian Kandeler2013-05-231-2/+4
| | | | | | | | | While we do not promise a stable ABI at the moment, this is conceptually correct and has to be done sooner or later, with increasing effort the longer we delay it. Change-Id: Icc98443974e54d377167480ace601db4981ed43c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove structural redundancy in project and product classes.Christian Kandeler2013-04-121-4/+3
| | | | | | | | | | | | | | | 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>
* Remove global log sink.Christian Kandeler2013-02-061-7/+12
| | | | | | | | | | | | | | | Applications may not want to use the same log sink for all builds. The logging facility is also decoupled from the command-line client in other ways: - The LogWriter modifiers for output channel and text color are gone, since this type of decision should not be made by low-level code. Instead, the "highlight" string can be forwarded to the log sink. - The console logger now lives in app/shared, as it must never be used by library code. Change-Id: I8863a554c9b74577320ef23f6f934a74e0f0cbb0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not write directly into loggerTobias Hunger2013-01-111-6/+5
| | | | | | | | | | | Pass information up to the client instead so that it can decide how to handle it. This allows e.g. creator to parse compile output for build issues. Change-Id: I76be4eaeb289b211b7d2527b555536b556655492 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* update copyright yearJoerg Bornemann2013-01-091-1/+1
| | | | | Change-Id: Ic2962e57ede037b910d7e77b01b0163f0a22cb7d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Remove the BuildGraph class.Christian Kandeler2012-12-051-1/+1
| | | | | | | | Its only contents were static member functions, which now become free functions. Change-Id: If854e6804626beddcc918d0aea155e07fd945577 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Split up buildgraph.h and buildgraph.cpp.Christian Kandeler2012-12-041-0/+1
| | | | | | | Move things to the appropriate places. Change-Id: I2f201ccdf9c465a8c3201e229629b756cc258495 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Reduce compile dependencies.Christian Kandeler2012-11-291-1/+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>
* Sanitize the Executor code flow.Christian Kandeler2012-11-291-1/+2
| | | | | | | | | | | | | The current behavior is not exactly well-defined, mostly due to signals calling back on the Executor while it is calling a function on the object emitting the signal (e.g. waitForFinished()). These traps are now gone. Also make sure error messages are in a sensible order when a build is canceled. In addition, remove unused functionality. Change-Id: Icf35eb378995a55b5ba4fc6caea9492eccb43527 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Implement "dry run" functionality.Christian Kandeler2012-11-151-0/+4
| | | | | Change-Id: Iae59f773c11ba6d7be748c95807727464906bcaa Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Introduce namespace Internal.Christian Kandeler2012-11-081-0/+2
| | | | | | | | | This makes it obvious at first glance which facilities are for public use and which are not, which should be useful especially for clients of the library. Change-Id: I7f74f13b5c8a4c63a1de57bf607084a3a3852653 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Rename classes.Christian Kandeler2012-11-061-7/+7
| | | | | | | | | The central class of the public API should have a name that suggests its role to clients, so we call it "QbsEngine". The class currently using this name is now called "ScriptEngine". Change-Id: I77eba4618a3e1313c2d3a43fe29585aad638da4e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Revert "Rename classes."Christian Kandeler2012-11-061-7/+7
| | | | | | | | This reverts commit c39e9a0715c4469c78a1e797426db6d94df51c4c The commit is correct in principle, but was prematurely merged and should have been based on an additional patch. Change-Id: Id5920491fa948ac48f304797f5ec959b28e9ac25 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Rename classes.Christian Kandeler2012-11-061-7/+7
| | | | | | | | | The central class of the public API should have a name that suggests its role to clients, so we call it "QbsEngine". The class currently using this name is now called "ScriptEngine". Change-Id: I6c3e6d5770ac8b096d9515cbe5762fe97346ab7e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Split up class CommandExecutor.Christian Kandeler2012-10-221-0/+179
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>