aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux/remotelinux.pro
Commit message (Collapse)AuthorAgeFilesLines
* RemoteLinux: Move EmbeddeLinuxQtVersion to QtSupporthjk2019-08-161-2/+0
| | | | | | | | The class uses only one ID from RL at compile time, and after the move RL does not hard-depend on QtSupport anymore. Change-Id: I9f8aa6782e45fe998d83ddcc5323c396964bf1fe Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Aspectify RemoteLinuxCheckForFreeDiskSpaceStephjk2019-04-241-2/+1
| | | | | | Change-Id: I40c2639b0cbc0d36920394a2ff34fbfcfdadb27f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Retrieve deployment info from local install rootChristian Kandeler2019-04-231-0/+2
| | | | | | | | | | | | | | | | This provides correct deployment information as seen by the build system when Qt Creator cannot retrieve it directly. It's most useful for autotools and cmake projects, but can also help with qmake in certain edge cases. [ChangeLog] It is no longer necessary to provide a QtCreatorDeployment.txt file when using CMake projects with remote Linux devices. Fixes: QTCREATORBUG-21855 Change-Id: I27e07a45dd1565e489f4b573cc3fff8191c57d9b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Move IDeviceFactory closer to IDevice implementationhjk2019-02-211-2/+0
| | | | | | | | | Except for the DesktopDevice, which is kind of special. Also try a bit to make (and partially fail at doing so) naming and code structure (#include, use of namespaces) more similar to each other. Change-Id: I9fe266e706b72c14f59ff03ca1ae02dba3adcc71 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport et al: Move QtVersionFactory to *QtVersion implementationhjk2019-02-181-2/+0
| | | | | | | At most a dozen lines each left. Change-Id: Ifbf34f814266ba7bee83d3fee9db831eb450dfc4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Add an rsync deploy stepChristian Kandeler2018-12-171-0/+2
| | | | | | | | | | Using rsync enables proper incremental deployment and is particularly helpful when larger files are involved. We check whether rsync works as part of the device test. If it does, it becomes the default deploy step, otherwise we fall back to SFTP. Change-Id: I6ab938ccd5acd7e0cbe07b90b6938dccad19bba5 Reviewed-by: hjk <hjk@qt.io>
* RemoteLinux: Offer X11 forwarding in run configurationsChristian Kandeler2018-11-191-0/+2
| | | | | Change-Id: I736d76e072a97fa148286c30c4ca36bf4c1253e2 Reviewed-by: hjk <hjk@qt.io>
* RemoteLinux: Remove empty remotelinuxutils.*Ulf Hermann2018-10-111-2/+0
| | | | | Change-Id: I41dda4b358d042b3857c90527f386133e6d425e2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Rework executable display handling in runconfigshjk2018-04-231-2/+0
| | | | | | | | | | | | | | | | | | | | The basic idea is to provide an easy-to-configure reusable building block to provide an "Executable" in a run configuration. This patch here extracts some generic from the previous ExecutableAspect into a BaseStringAspect and bases the new ExecutableAspect implementation on it. It also adds the the ability to make it editable or to manually override an executable, and adds a SymbolFile aspect for the accompanying sources of debug information. Use in RemoteLinux and Qnx for starters and demonstration purposes. In the end the Qnx runconfiguration widget does not depend on the RemoteLinux implementation anymore by replacing the previous code-sharing-by-inheritance by direct (and less) code. Change-Id: I91b55820455256a8526e39458364b6cb74e63cd7 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* RemoteLinux: Rework RemoteLinuxCustomRunConfigurationhjk2018-04-091-2/+1
| | | | | | | | | | | | | | | | Use ArgumentAspect and WorkingDirectoryAspect. Use base convenience functions to set up configuration widget. The RunConfigWidget base is not needed for the main frame. Make the run config display names consistent. Display remote exe (which is the main thing) above the local exe (which is only a helper to get debug info). Change-Id: I9a47dc9ea27e6abd96bb75a3103ebc8ba35069c0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux: Move RunConfigurationFactories close to RunConfigurationshjk2018-04-091-2/+0
| | | | | | | | No need to have a dozen lines of code in a separate translation unit and more in line with what others do nowadays. Change-Id: I029cac3d96b6a318be2cc4efad08badfae68fc20 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* RemoteLinux: Kill remote app before deploymentChristian Kandeler2017-12-131-0/+4
| | | | | | | | | 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>
* ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setuphjk2017-12-081-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Generalize QML tooling supportUlf Hermann2017-10-191-2/+2
| | | | | | | | 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>
* RemoteLinux: Remove abstractremotelinuxrunsupport.{h,cpp}hjk2017-09-081-2/+0
| | | | | | | | | | | 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>
* ProjectExplorer: Simplify standard run control constructionhjk2017-06-201-2/+0
| | | | | | | | | | | | | | 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>
* ProjectExplorer/QNX/RemoteLinux: Merge {RemoteLinux,Simple}RunControlhjk2017-03-221-2/+0
| | | | | | | | | | | | | | | Currently still kind-of-two implementations due to the kind-of-two current ApplicationLauncher message handling, but getting one step closer to a unified implementation. This also de-emphasizes the "wrong" QNX-IS-A-RemoteLinux relation by removing the QnxRunControl inheritance of RemoteLinuxRunControl. Change-Id: Iec8abaa53223a5a47ec51817b3994d37d444557a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Refactor the incremental deployment to a separate classDaniel Trevitz2016-10-081-2/+4
| | | | | | | | | Extract incremental deployment caching to a new class. Remove the extra Kit pointer and use target directly. Add incremental deployment class to deploy service private data member. Change-Id: I1e2e0829b9413f647ccfa3a4af23260a54895d83 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RemoteLinux/Qnx: Use StandardRunnablehjk2016-01-271-2/+0
| | | | | | Change-Id: I73331985eb68065b5fb123ff4491888d824de766 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com> Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* RemoteLinux: Provide a custom run configuration.Christian Kandeler2014-05-071-1/+4
| | | | | | | | | Like the existing "Custom Executable" run config, but for a remote Linux target. Task-number: QTCREATORBUG-12168 Change-Id: I0527c2f8080f0e3467fe7210968435fc401fbf76 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* remotelinux: Add generic Runconfiguration interfaceBenjamin Zeller2014-04-101-0/+2
| | | | | | | | Adds a generic interface (AbstractRemoteLinuxRunConfiguration), so plugins can ship a custom remote runconfig. Change-Id: I4ef8e39c4c69224d4e55224c782f3d544f10c945 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Move model and view for deployment data into ProjectExplorer.Christian Kandeler2014-04-021-5/+0
| | | | | | | | | These classes currently live in the RemoteLinux plugin, but there is nothing Linux-specific about them. Adapt the class and file names accordingly. Change-Id: If1936265cf83afaef9e14bbb0f54ede5e054e76a Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* ProjectExplorer: Introduce DeviceProcessSignalOperation.David Schulz2013-09-201-2/+4
| | | | | | | | | | | Every device can now return a DeviceProcessSignalOperation, which allows to kill or interrupt processes running on the device. Change-Id: Idaa04ebc767e09ca167fa033ed93860b9b81479e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: David Kaspar <dkaspar@blackberry.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Introduce the concept of a "device process".Christian Kandeler2013-08-191-2/+4
| | | | | | | | | | | | | | | | | | | Provide a QProcess-like abstraction that can be used to implement processes running locally or on a remote device. Objects of a concrete class implementing the functionality are created by IDevice objects. Current implementations are: - Local execution (QProcess-based), provided via the DesktopDevice. - Remote execution via SSH. - A specialized case of the former for remote Linux systems (provided by LinuxDevice). The latter is already being used in a number of places. As a result, lots of code dealing with details such as setting the remote environment could be moved to a central location. These things are no longer the concern of whoever is wishing to run a remote process. Change-Id: I919260ee6e77a020ca47226a4a534e7b8398106f Reviewed-by: hjk <hjk121@nokiamail.com>
* Device support: Make device testing a "well-known" concept.Christian Kandeler2013-07-021-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | This entails the following: - Rename AbstractLinuxDeviceTester to DeviceTester and move it up into ProjectExplorer. The class stays unchanged, as there was nothing Linux-specific about it. The same goes for the associated dialog. - Move the createDeviceTester() function from LinuxDevice to IDevice and introduce IDevice::hasDeviceTester() to enable generic code to make use of this feature. - Move device testing out of the list of opaque device-specific actions; instead, the device settings widget now uses the device tester directly, if applicable. Rationale: - Device testing, just like remote process listing (if not more so), is a general concept that implementors of device classes will probably want to implement (and they should be encouraged to do so). Without the mechanism provided here, they would all need to put basically the same code into the actionIds(), displayNameForActionId() and executeAction() functions. This patch is the natural extension of b90e3bbd8bea27ad915a4d9033e0d5bda26f5667. Change-Id: I94f2badb4ceeda9f5cd3b066c13626bb4f65505d Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* RemoteLinux: Rename IRemoteLinuxRunSupport to AbstractRemoteLinuxRunSupportAurindam Jana2013-05-071-4/+4
| | | | | Change-Id: Idee11afe23fd6fa271a0776a460d227ced9b7916 Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
* QmlProfiler: Remove RemoteLinux dependencyAurindam Jana2013-05-071-2/+6
| | | | | Change-Id: I3ff14691b4f9c80793a491b61444f8ceeb05a4fb Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
* Specialize environmentaspect for remote linuxTobias Hunger2013-04-111-0/+4
| | | | | | | ... and attach it to remote linux runconfigurations Change-Id: I5596b7a237ac6ef4a834324f95f462adbe28e722 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* derive TARGET from QTC_{LIB,PLUGIN}_NAMEOswald Buddenhagen2013-04-031-1/+0
| | | | | | | | the information is redundant now Change-Id: Icc8c8b4ace11538d45c6c9e1dbe5a7976f4743e1 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* centralize assignment of TEMPLATE = libOswald Buddenhagen2013-04-021-1/+0
| | | | | Change-Id: I4025539f3875e79f03743ba9ed3fd09cd31b998d Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* automatically include libs' and plugins' _dependencies.pri filesOswald Buddenhagen2013-04-021-1/+0
| | | | | Change-Id: I25645bb625b467c6f9d895ff89a70acd6a25683e Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Generalize QT_NO_CAST_FROM_ASCIIOrgad Shaneh2013-01-161-3/+1
| | | | | Change-Id: I2b6c5876cafb7cf19fc3040bc84fd88a90b6c0e0 Reviewed-by: hjk <qthjk@ovi.com>
* RemoteLinux: Compile with QT_NO_CAST_FROM_ASCIIOrgad Shaneh2012-11-271-2/+3
| | | | | | Change-Id: I10541e999d6210caf6b88ecb5c1010e831b2f4d4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* RemoteLinux: Remove dependency on Qt4ProjectManager.Christian Kandeler2012-08-241-12/+4
| | | | | | | | | | | | | | | | | | Instead use the newly added abstractions from ProjectExplorer. This makes the plugin qmake-independent in principle; any build system can be used as long as the respective QtCreator plugin provides a way to set up the required deployment information. As a side effect of this patch, two features are lost: (1) The ability to add a remote directory automatically for a RemoteLinux based target. This was rarely ever useful, because any non- trivial project requires more files to be deployed than just one binary. (2) The ability to add Desktop files and icons for Fremantle and Harmattan projects. Similar points as above apply here as well; such projects should be set up via QtCreator's wizards or manually by users who know what they are doing. Change-Id: I2d7e621256f01143aafe3b191b04a120f053e672 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
* remotelinux: rename LinuxDeviceConfiguration to LinuxDevicehjk2012-08-011-2/+2
| | | | | Change-Id: I7e8a99d3339d2040a23e4e78816b13b57197dcdb Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* ProjectExplorer: Introduce generic application runner.Christian Kandeler2012-08-011-2/+0
| | | | | | | | | | This class aims to be a flexible worker class for SSH-based run controls. It supersedes AbstractRemoteLinuxApplicationRunner as well as all of its derived classes, while having no RemoteLinux dependencies itself. Change-Id: If24f03a32126b36fc3d0b253a1615ad0af5f2b46 Reviewed-by: hjk <qthjk@ovi.com>
* debugger: move startgdbserverdialog from remotelinux pluginshjk2012-07-311-2/+0
| | | | | Change-Id: Ic382437bb99fe1b6bda9b1252e286cb3b9476191 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* remotelinux/projectexplorer: move UsedPortsGatherer to projectexplorerhjk2012-07-311-2/+0
| | | | | Change-Id: Iafd7f109de3076375e667aff0c429405cef07b55 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* remotelinux/projectexplorer: move processlist closer to the corehjk2012-07-271-5/+0
| | | | | Change-Id: Icc33981a625da093600273f84b681e79a5a4fa22 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* Profile introductionTobias Hunger2012-06-211-6/+0
| | | | | | | | | | | | | Introduce Profiles to store sets of values that describe a system/device. These profiles are held by a target, getting rid of much of the information stored in the Build-/Run-/DeployConfigurations, greatly simplifying those. This is a squash of the wip/profile branch which has been on gerrit for a while, rebased to current master. Change-Id: I25956c8dd4d1962b2134bfaa8a8076ae3909460f Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* RemoteLinux: Add new deploy step that checks for free space.Christian Kandeler2012-05-311-3/+8
| | | | | | | | Tool output in the "disk full" case can be rather unhelpful, so we check in advance. Change-Id: Ia3f5f0b456b91acf9a8f8e72de870e1df6ea8e80 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@nokia.com>
* Introduce the concept of an abstract device.Christian Kandeler2012-03-081-17/+2
| | | | | | | | | | The idea is that all kinds of devices inherit from one abstract base class and that they are all managed by one device manager, who does not know about their specifics. For now, the only concrete subclass is the LinuxDeviceConguration. Change-Id: I31ff5586a0fdd6bcf8dcc0554bb2b91fe65b2f3f Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* RemoteLinux: The device manager should not be itself a model.Christian Kandeler2012-03-021-2/+4
| | | | | | | | | The ListModel functionality is only needed in very few contexts, so we move it into a dedicated class. This cleans up the actual device manager. Change-Id: I325bf43a9260ab9a8e484f8972e2d962ea2f1b3e Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* PortList: Move to utilsKai Koehne2012-03-011-2/+0
| | | | | Change-Id: I99dbef56a2a5b06bb4b89ca442e44bf586efdb22 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* Extract the device specific settings for linux device.Nicolas Arnaud-Cormos2012-02-201-3/+6
| | | | | | | | The LinuxConfigFactory has now a new pure virtual method to create the widget for the device specific settings. It allows new device to create their own settings page. Change-Id: Ie14df043fdef088b0e6e3b1e08b5d0d1863f76e5 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* SSH: Export information about the underlying TCP connection.Christian Kandeler2012-02-101-0/+1
| | | | | Change-Id: I62bce3b563b6aba481642fac0d427c0f0d3b2ddd Reviewed-by: hjk <qthjk@ovi.com>
* RemoteLinux: Introduce abstract base class for remote Linux targets.Christian Kandeler2012-02-071-4/+6
| | | | | | | | More stuff (e.g. deployment information) will move into that class shortly. Change-Id: I9ad785533d54859e72079b54796710707f716469 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
* Deploy steps: Introduce SimpleBuildStepConfigWidget.Nikolai Kosjar2012-01-111-2/+0
| | | | | | | | | | This simplifies some deploy steps and replaces RemoteLinuxDeployStepWidget. Change-Id: I4ad82c498cee0f15e1c93bf915cd48355017eb84 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com> Reviewed-by: Paweł Polański <pawel.3.polanski@nokia.com>
* Revert "Remote Linux: Rework device testing"Christian Kandeler2011-12-211-2/+0
| | | | | | | | | This reverts commit 934c067ddf365c6f12b1e4a1e431f27610b32f7d, because it breaks running remote Linux applications due to buggy refactoring of the remote ports gatherer. Change-Id: I15fd8d4f3e76452a8c5c735316991bd00900444f Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
* Remote Linux: Rework device testingTobias Hunger2011-12-211-0/+2
| | | | | | | | | | | | Allow for a set of tests to be defined. This simplifies the code for the individual test to run and allows for a more flexible approach to device testing. MaddeDeviceTester is no longer needed due to that. Change-Id: I77fd2d53246dec2d8c6b584d0c73cc1134d7f47d Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com> Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>