Details
-
User Story
-
Resolution: Done
-
P1: Critical
-
Qt Creator 4.0.0
-
None
Description
Note that this is not a duplicate of QTPM-597, but concerns the "other" "matrix problem" (related to build systems and targets, not tools and targets).
When Creator was "invented", one idea was to have one instance per Qt version, pretty much like we have one qmake per Qt version, and the only use was to create, compile and run projects using that single, desktop-only Qt versions, and there was only qmake as build system.
Consquently, all platform code was somehow related to qmake, and with the advent of CMake and QBS we started to get major hunks of similar copied-and-augmented code for some setups.
The RemoteLinux plugin managed to implement a "buildsystem agnostic" approach for its operation that conceptually could be used in most (all?, all but android?) remote targets, and with some smaller additions related to "Run in Terminal" and (qtc_runnable) be extended also to local setups.
The battle plan here is as follows:
Base local QBS on Remote Linux infrastructure
Base local CMake on Remote Linux infrastructure
Base local qmake on Remote Linux infrastructure
Unify structure of qdb, boot2qt and BareMetal implementation
Take a breath
Unify structure of local setup
Try to extract a "StandardRunConfiguaration" as base for as-many-as-possible RunConfigurations
Depending on how well that works there / to what degree this is possible the "StandardRunConfiguration" could be the only one.
Cleanup fallout
[X] - "works in the intended setup"
qmake | Qbs | CMake | |
---|---|---|---|
Local | |||
RemoteLinux | X | X | X |
Boot2Qt (qdb) | |||
BareMetal | |||
Android | |||
iOS | |||
QNX |