summaryrefslogtreecommitdiff
path: root/src/plugins/remotelinux
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Promote RemoteLinuxRunConfigFactory::availableBuildTargetshjk2018-01-082-11/+1
| | | | | | | | | | | | | This was already almost the desired final pattern, so make it the default implementation of ProjectRunConfigurationFactory::availableBuildTargets. For the only remaining feature of "decorating" the build target names, introduce a property m_displayNamePattern. Un-adapted sub-classes still need (and are able) to overide. Change-Id: Ia7d2d2f7d53f8b1da487fa82c8265ad5deb47500 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Return BuildTargetInfo from availableBuildTarget()hjk2018-01-052-11/+6
| | | | | | | | | | | | | ... including build target name and display names instead of returning QString build target names and producing display names via displayNameForBuildTarget() This is a mechanical intermediate step on the road to use Target::applicationTargets().list uniformly as source of build targets. Change-Id: I7b0b1fb398d5061b0cec0b86890f9eaf0bb53a19 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Add a IRunConfigurationFactory::addFixedBuildTarget()hjk2018-01-032-14/+1
| | | | | | | | | To be used for "special" build targets (Custom executables etc) that do not depend on the project. This reduces user side boiler plate in a couple of cases and is a bit clearer than the magic {QString()} result anyway. Change-Id: I105b6ab952981143b2abf9b218fed30cee80b648 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Combine some SshConnectionParameter membershjk2017-12-196-33/+24
| | | | | | | | Combine host, port, username and password into a 'url' member and add some convenience accessors. Change-Id: Iddc26ff00dad1285c96aa56f196dbc4febe8e974 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Remove unneeded declarationshjk2017-12-191-3/+0
| | | | | Change-Id: Idaf2ef617090f6da5298b13f17af2db1ec0a89cb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Kill remote app before deploymentChristian Kandeler2017-12-138-1/+306
| | | | | | | | | It's unlikely you want to have two instances running at the same time, and SFTP does not let you overwrite a running executable anyway. Task-number: QTCREATORBUG-19326 Change-Id: Iac48d28f538307fc1764f973ce0c9959ef89af03 Reviewed-by: hjk <hjk@qt.io>
* RemoteLinux: Initialize membersRobert Loehning2017-12-122-4/+3
| | | | | Change-Id: I0c5cd52747373be0d50ac818dbbeaf39c34fd5fd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-0827-521/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follow the rough pattern of recent *RunConfigurationFactory changes for build and deploy configurations. - Collapse the two lines of constructors similar to what 890c1906e6fb2ec did for RunConfigurations * Deploy* was purely mechanical * Build* ctors are split in connects() in the ctor body to create "empty shell for clone" etc and build step additions in initialize() functions which are only used in the create() case. -- Allows to collapse the shared 'ctor()' functions, too. - Move FooBuildConfigurationFactory::create() implementations to FooBuildConfiguration() constructor. That was a strange and unneeded ping-pong between factories and objects, and furthermore allows one level less of indirection (and for a later, left out here, some reduction of the FooBuildConfiguration interfaces that were only used to accommodate the *Factory::create() functions. - Most {Build,Deploy}Configuration{,Factory} classes had a canHandle(), but there wasn't one in the base classses. Have one there. - Most canHandle() functions were checking simple restrictions on e.g. project or target types, specify those by setters in the constructors instead and check them in the base canHandle() - clone() is generally replaced by a creation of a "shell object" and a fromMap(source->toMap()), implemented in the base, there are two cases left for Android and Qbs that needed(?) some extra polish - generally use canHandle() in base implementation, instead of doing that in all Derived::canFoo() - as a result, canCreate/create/canClone/clone reimplementations are not needed anymore, keep the base implementation for now (could be inlined into their only users later), but de-virtualize them. - Combine Ios{Preset,DSym}BuildStepFactory. There was only one 'dsym' build step they could create. - Split the 'mangled' id into the ProjectConfiguration subtype specific constant identifier, and a QString extraId() bit. Only maintain the mangled id in saved settings. - Make ProjectConfiguration::m_id a constant member, adapt all constructors of derived classe. Not done in this patch: - Finish possible cosmetic changes on top - Add a way to specify restrictions to supported Qt versions (used in Android/Ios), as the base implementation does not depend on the qtsupport plugin - Combine the QList<X> availableFoo() + createFoo(X) function pairs to somthing like a direct QList<struct { X; std::function<X()>; }> fooCreators() to avoid e.g. the baseId.withSuffix() <-> id.suffixAfter(base) pingpong - Remove the *Factories from the global object pool - Do something about priority(). Falling back to plain qmake in android+qmake setup is not helpful. Change-Id: I2be7d88d554c5aa8b7db8edf5b93278e1ae0112a Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* RemoteLinux: Restrict remote custom exe runconfig to remote casehjk2017-11-271-0/+1
| | | | | | | | It was accidentally showing up for the desktop case, too. Change-Id: I3baa354b83bec93866af5f31699ccc7d8a2fe3c7 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Register createes' base id in RunConfigurationFactoryhjk2017-11-272-85/+21
| | | | | | | | | | | | | | | This shifts the resposibility of creation/splitting of RunConfiguration ids into what are essentially "type ids" and "build targets" to the base implementation, possibly opening the path of abandoning the mangled ids in favor of explicitly storing their constituent parts. Take advantage of base id split in RunConfigurations for availableIds /displayNameForId and for canCreate/canRestore/canClone. Change-Id: I19fefb32757407ab5053a2ae0e5a79438659f6ec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com>
* ProjectExplorer: Add a RunConfigurationFactory::canHandle(Target *)hjk2017-11-201-8/+1
| | | | | | | | All RunConfiguration factories had some kind of canHandle(Target *) implementation. Centralize this notion. Change-Id: Ie24a355e857bddfd76b866859b8c7a42ffc83840 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Implement RunConfiguration::do{Clone,Restore} in basehjk2017-11-164-33/+2
| | | | | | | | It's possible now. Change-Id: I49ed73312aea1627a9543890431e2e379e3fb3ec Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Convert to RunConfiguration::initialize(Id) signaturehjk2017-11-153-5/+11
| | | | | Change-Id: I940d96b3f6467f2898193092b4ce66b752161039 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Add an unused id argument to CustomRunConfigurationhjk2017-11-143-4/+4
| | | | | | | | | | ... to make signature the same as in other cases, which is needed later to make RunConfiguration::initialize(Id) virtual instead of the current static RunConfig *createHelper(Target *target, Args ...args) template. Change-Id: If3a8fdd67bc6fe49dd7f53881cc91c1a2914f7cb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Simplify IRunConfigurationFactory::clone() usehjk2017-11-142-24/+3
| | | | | Change-Id: I005d6c87142d26dfc7ae1349329737a68f54c427 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge remote-tracking branch 'origin/4.5'Orgad Shaneh2017-11-118-43/+2
|\ | | | | | | Change-Id: I60fca091b2eac67259580acba5ae934c16d74a83
| * ProjectExplorer: Fix copying of RunConfigurationAspectshjk2017-11-106-28/+0
| | | | | | | | | | | | | | | | | | | | | | Moving aspect data closer to real Value semantics fixes the regression introduced by 890c1906e. Task-number: QTCREATORBUG-19186 Task-number: QTCREATORBUG-19192 Change-Id: Ieaeef3995ae06a817f266c1e2514f9e5793bd4e8 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * RemoteLinux: Remove some unneeded code from GenericLinuxDeviceTesterhjk2017-11-102-15/+2
| | | | | | | | | | Change-Id: Iabf995b340a521311f9f946c05e346ef07f4b3bf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | RemoteLinux: Split off RemoteLinuxCustomRunControlFactoryhjk2017-11-103-24/+97
| | | | | | | | | | | | | | | | | | | | | | ... from RemoteLinuxRunControlFactory to create a setup where one factory is responsible for one type of RunConfiguration only. This is a temporary measure to allow streamlining the create/restore/ clone boiler plate. Change-Id: I27b987b87001867b66ce797969c779fd207c5a98 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | RemoteLinux: Add support for QML Live PreviewUlf Hermann2017-11-022-0/+9
| | | | | | | | | | | | Change-Id: I86a0a7943505c61499dc0bb392f75f122cfbacdd Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/4.5'Eike Ziller2017-10-252-19/+3
|\ \ | |/ | | | | Change-Id: Iceaa4ca40b5318744bde8a76c6d3ccca08df71bb
| * Debugger: Move start dependency on PortsGatherer to GdbServerRunnerhjk2017-10-231-1/+0
| | | | | | | | | | | | | | | | | | It's always needed and GdbServerRunner knows the PortsGatherer. This also makes the setup more similar to the QNX PDebugRunner setup. Change-Id: I5863d2c77cd5c92d0f25682d655c9901b8939c30 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * RemoteLinux: Use the optional PortGatherer from the DebuggerRunToolhjk2017-10-192-19/+4
| | | | | | | | | | Change-Id: I4a79abff197ea72df421fbafe11823480719f4a6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * RemoteLinux: Set scheme on QML server URLUlf Hermann2017-10-191-0/+1
| | | | | | | | | | | | | | The connection manager won't accept URLs without schemes anymore. Change-Id: I647a87a73afae394c5c52a827a7359919be7e43f Reviewed-by: hjk <hjk@qt.io>
* | RemoteLinux: Generalize QML tooling supportUlf Hermann2017-10-195-20/+32
| | | | | | | | | | | | | | | | The only thing about RemoteLinuxAnalyzeSupport that's actually specific to the QML profiler is the debug services preset. Change-Id: I1360f9555b18b74d9a86799900b58ce69e3bc205 Reviewed-by: hjk <hjk@qt.io>
* | Environment: make usage of Environment.iterators more consistentNikita Baryshnikov2017-09-281-1/+1
|/ | | | | Change-Id: I114ddb2238ad19ac0681b8405925f283f2460f21 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Re-organize RunConfiguration constructorshjk2017-09-135-83/+63
| | | | | | | | | | | | | | | | | | | | The idea is to massage the setup in a way to make implementation of new configurations less error prone by identifying recurring patterns and sharing repetitive code that tends to be forgotten (see Android cloning). The former two lines of constructors (owner-and-id, owner-and-source) are split into a simple, shared, constructor and new setId() and copyFrom() functions. The change is mostly mechanical, some multiple calls to fromMap have been removed, though, some consts added. Otherwise, to keep the patch small it temporarily introduces two helper templates in IRunConfigurationFactory. Also, setId() signatures have not been unified yet. These won't be needed in the final setup. Change-Id: I8c0734496caae744a9883fe6d92c1d8f8e0234ea Reviewed-by: hjk <hjk@qt.io>
* RemoteLinux: Remove abstractremotelinuxrunsupport.{h,cpp}hjk2017-09-088-181/+10
| | | | | | | | | | | There was only the now-unused FifoGatherer left, which could, if really needed again, be re-instated near the actual worker that would need it. Also, un-export LinuxDeviceDebugSupport and RemoteLinuxQmlProfilerSupport which are not re-used, and conceptually not meant to be re-used, anymore. Change-Id: I20b6eb2f4a85180b586ea8338cf74173e3b7b21c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Remove target-specific perf supporthjk2017-09-063-75/+0
| | | | | | | | The base target-agnostic implementation is good enough to handle the case. Change-Id: Ib4615de59c1d5defd297a885ca2ca13ff9e0d3e6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* iOS: Adapt to new setter-based DebuggerRunTool interfacehjk2017-09-041-1/+1
| | | | | Change-Id: I96f113b831dcbd3735f743c8f12042e9b17903a4 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
* Merge remote-tracking branch 'origin/4.4'Orgad Shaneh2017-08-301-1/+1
|\ | | | | | | Change-Id: I9ab2c68d2bd07b0dd89051a2f5f6fa51676d8594
| * Fix copyright year in plugin info, --version, and macOS infoEike Ziller2017-08-241-1/+1
| | | | | | | | | | | | | | | | By using the new QTCREATOR_COPYRIGHT_YEAR variable Task-number: QTCREATORBUG-18612 Change-Id: I3bcf0319660d210436d3130c00f43325c460a66c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Debugger: Add a few convience setters for some run parametershjk2017-08-242-56/+9
| | | | | | | | | | | | | | | | The idea is to use them later to make the DebugRunTool setup leaner. As proof of concept, use the new interface in LinuxDeviceDebugSupport. Change-Id: I045ba4d05cfc56a9e875fd4461e9f562153872dd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Debugger: Use a QUrl for Qml server port and hosthjk2017-08-231-5/+4
| | | | | | | | | | | | | | | | Host and port reasonably belong together, using a QUrl makes that more explicit and follows the lead of the Qml profiler in that area. Change-Id: I754cb17d165ce6b2f25c655eeebfd8ac8f5a93c7 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
* | RemoteLinux: Remove RemoteLinuxQmlProfilerSupport::m_outputParserhjk2017-08-181-5/+0
| | | | | | | | | | | | | | It's not necessary and not used anymore. Change-Id: Ibf5f8b691a0228b90c045154dd98ee83d4300861 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Merge remote-tracking branch 'origin/4.4'Eike Ziller2017-08-153-7/+16
|\ \ | |/ | | | | | | | | | | | | | | Conflicts: src/tools/clangbackend/ipcsource/clangiasyncjob.cpp src/tools/clangbackend/ipcsource/clangjobrequest.cpp src/tools/clangbackend/ipcsource/clangjobrequest.h Change-Id: Ib8602530663813ade418f995dfd2a736908cfe75
| * DeviceSupport: Implement DesktopDevice::portsGatheringMethod()hjk2017-08-101-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The feature is useful in a QtApplicationManager debugging context. Internally, DeviceUsedPortsGatherer uses a DeviceProcess now, not an SshRemoteProcess, to cover cases where the (Windows Desktop) device not have ssh available. Change-Id: I9d33ceac65a135123a376ebd2727dcb540563179 Reviewed-by: Wolfgang Bremer <wolfgang.bremer@pelagicore.com> Reviewed-by: Dan Cape <dcape@qnx.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * RemoteLinux: Use stop dependencies for QML profilingUlf Hermann2017-08-081-0/+5
| | | | | | | | | | Change-Id: I8a4f531928f46c6866c798d79476fdd37875326c Reviewed-by: hjk <hjk@qt.io>
| * ProjectExplorer: Rename worker dependencies to "startDependencies"Ulf Hermann2017-08-082-5/+5
| | | | | | | | | | | | | | | | There will be stopDependencies, too, which apply when stopping the runcontrol. Change-Id: Id72771d28cbb6b254572c9f93db93e0d054b890f Reviewed-by: hjk <hjk@qt.io>
* | RunConfiguration: Centralize enabled state handlingTobias Hunger2017-07-282-36/+1
| | | | | | | | | | | | | | | | | | | | Centralize handling of enabled state of RunConfiguration widgets. Remove code that does the same thing in all the different run configuration widgets. Change-Id: I175d7e19d031bd28a2b19cd825e0b6568da19bc3 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | ProjectExplorer: Introduce base class for enabled/disabled project configurationTobias Hunger2017-07-283-7/+0
|/ | | | | | | | | | ... and use this as a base for all RunConfigurations. Clean out code in the individual run configurations dealing with their enabled/disabled state. Change-Id: Icc2ea136b056f7aea7ce96480b4402459d7ac0ce Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Make ApplicationLauncher report QStrings, not QByteArrayhjk2017-07-141-6/+6
| | | | | | | | | | Realistically, we only have UTF-8/plain ASCII messages, and if not then the conversion should happen when the message enters the "creator eco system" as there's potentially information on the actual encoding present, not at some random consumer further down the chain. Change-Id: Ie21199b99255f5c4d28fce3da7db2fd6c3bcfb3a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Implement FifoGatherer::stop()hjk2017-07-132-3/+3
| | | | | | | | | ... instead of onFinished(), which is on its way out. Should be the right think in theory and not make a difference in practice as the code appears to be unused right now. Change-Id: I5ef415fc0fab8902e8e31e75354a5943d99b2182 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Debugger: Use a somewhat less intrusive hack for 'start at main'hjk2017-07-121-2/+0
| | | | | Change-Id: Ie649a4a11c88f3686cd6ed1e73f34c7c78fd0e13 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Remove RunControl::worker<Type>()hjk2017-07-072-10/+8
| | | | | | | | | | | | | | | | | | It looks like the case where workers need talk to each other by only knowing the type of the 'partner' does not exist in practice anymore. With the now-common setup of a 'primary' worker that one can introduce the 'lesser' workers to each other directly. That's also conceptually more robust that picking a partner by type only only from some 'pool' (all the workers in a runcontrol), scales better (it e.g. is imaginable that a RunControl needs more than one PortGatherer in complex setups where more than one device is involved) saves a few cycles, and even removes the need for workers to be qobject_cast-able. Change-Id: Ib3d8c942c893d6c198d9813cce7df28ba3260ce8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: hjk <hjk@qt.io>
* LinuxDevice: Add missing overridesEike Ziller2017-07-031-16/+16
| | | | | Change-Id: I78663056be4e5759e94b2f94c07c82b5251c31a1 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Introduce a Utils::OsType IDevice::osType() functionhjk2017-06-282-0/+6
| | | | | | | | | | | | E.g. for easier construction of command lines in situations like if (isLocal()) runnable.commandLineArguments = argumentString(Utils::HostOsInfo::hostOs()); else runnable.commandLineArguments = argumentString(Utils::OsTypeLinux); Change-Id: I5a35304e5d1b5a042952201f39f4134a5cd0ce24 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Prepare for downstream Qdb adaptationshjk2017-06-232-18/+15
| | | | | Change-Id: Ie00eb97cd0aeaf8eac193ead3048c180fe39808e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Debugger: Remove remote setup sub-statemachineryhjk2017-06-221-1/+0
| | | | | | | | Not needed anymore in the world of RunWorkers. Change-Id: Id7fb24fece6acb03de12f2677dd99a05c513e7a4 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
* ProjectExplorer: Simplify standard run control constructionhjk2017-06-205-156/+20
| | | | | | | | | | | | | | A lot of the target-and-tool specific run controls nowadays have something like a single main RunWorker. This patch removes the need to have user-implemented RunControlFactories in those cases and adjusts local run, remote linux, python and nim to take advantage. There's more potential use downstream. Change-Id: Ie2d2f839b8be1fad2be3b79e21de3c0e475d88cf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>