aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux/remotelinux.qbs
Commit message (Collapse)AuthorAgeFilesLines
* RemoteLinux: Remove direct dependency on QtSupporthjk2019-08-191-1/+0
| | | | | | | No real impact as it is still pulled in by the debugger, but... Change-Id: I813e1e99474dc0ec7d4089c548b544fd351dc9f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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-1/+0
| | | | | | 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-1/+3
| | | | | | | | | | | | | | | | 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-1/+0
| | | | | | | | | | | | | | | | 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-0/+2
| | | | | | | | | 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>
* qbs build: More steps toward creating a "development installation".Christian Kandeler2016-06-131-112/+115
| | | | | | | | | | | | | | | Namely: - Install header files. - Install imports and modules. - Create modules from products and install them. This is most of what we need. The main thing still left to do is dealing with paths in Export items. These have to be translated somehow. (Currently we only copy the Depends items out of the Export items and ignore everything else.) Change-Id: I12d49fa31d1c1e05bc77a0e0ce3ec9c78c27192a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Move analyzerbase to debuggerhjk2016-02-251-2/+1
| | | | | | | | | | | | This is the first mechanical step to execute on the 'shared pool of debugger/analyzer views' idea. Future steps would be providing infrastructure for the view pool, making all analyzer/debugger views use the pool and then re-extract a sensible base for a 'analyzer-and/or-debugger' tool plugin interface. Change-Id: I1bb392e6dd3084fc56937956bee1d6fd9530335d Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
* 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>
* qbs build: Remove unneeded import statements.Christian Kandeler2014-11-101-2/+0
| | | | | | | The respective items are available without it. Change-Id: Idc840cf08e7bec84f561c096afe8de25b1fb8468 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* RemoteLinux: Provide a custom run configuration.Christian Kandeler2014-05-071-0/+3
| | | | | | | | | 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-1/+3
| | | | | | | | 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>
* use new base import style in qbs filesJoerg Bornemann2014-03-111-1/+1
| | | | | | Change-Id: Iecf32122df41f304ec6df538bb0dd8a263238a86 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Qbs/qmake: Fix dependencies of pluginsTobias Hunger2014-02-111-2/+4
| | | | | | | | | ... based on output from dependencyinfo.py script Change-Id: I9532f6d259f15c16b62fae0ca18f8a8cad95bd11 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Christian Stenger <christian.stenger@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* qbs project files: Make use of new qbsSearchPaths property.Christian Kandeler2013-10-091-1/+1
| | | | | Change-Id: I396d970fafea1fd0b4c4d73883796662a1d0064b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* ProjectExplorer: Introduce DeviceProcessSignalOperation.David Schulz2013-09-201-0/+2
| | | | | | | | | | | 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-0/+2
| | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/2.8'Oswald Buddenhagen2013-07-251-0/+1
|\ | | | | | | | | | | | | Conflicts: src/plugins/cpptools/cppmodelmanager.cpp Change-Id: I0e69dfad951eb81d8008f5ca05e8fb6999ae2c8a
| * Fix qbs build.Christian Kandeler2013-07-241-0/+1
| | | | | | | | | | | | | | Android and RemoteLinux now depend on libQmlDebug. Change-Id: I87f9ccc85daf0d096c4387b21642bb3b14fd03d6 Reviewed-by: Aurindam Jana <aurindam.jana@digia.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>
* fix qbs buildJoerg Bornemann2013-06-051-0/+1
| | | | | Change-Id: Ifb851fe09179b4822c53f528c793209226396c33 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Merge remote-tracking branch 'origin/2.7' into 2.8Eike Ziller2013-05-271-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/android/androiddebugsupport.cpp src/plugins/qtsupport/qtsupport.qbs Change-Id: I0953ca21a9db05084a79b8a6019189ea982df0b1
| * rename ProductModule into ExportJoerg Bornemann2013-05-271-1/+1
| | | | | | | | | | | | | | | | This fixes a bunch of warning when building with the updated qbs version. Change-Id: I644b4a4d0225b2e23ff1d9e1bf6d9d0136d6bbb5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | RemoteLinux: Fix qbs build.Christian Kandeler2013-05-211-0/+1
| | | | | | | | | | Change-Id: If4d51988df0b672dd44a19542209e1c85dd51cea Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
* | qbs files: remove superfluous definesJoerg Bornemann2013-05-131-2/+0
| | | | | | | | | | | | | | Those are set by QtcPlugin.qbs already. Change-Id: I9d9ec2e841e2266f0c35064d9821b0fdcc570ecf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | RemoteLinux: Add missing files to qbsAurindam Jana2013-05-071-0/+4
| | | | | | | | | | Change-Id: I25dbbf14c0d4d0dbbca23e820a5df94d534a3573 Reviewed-by: Aurindam Jana <aurindam.jana@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>
* Generalize QT_NO_CAST_FROM_ASCIIOrgad Shaneh2013-01-161-1/+1
| | | | | Change-Id: I2b6c5876cafb7cf19fc3040bc84fd88a90b6c0e0 Reviewed-by: hjk <qthjk@ovi.com>
* RemoteLinux: Compile with QT_NO_CAST_FROM_ASCIIOrgad Shaneh2012-11-271-0/+2
| | | | | | Change-Id: I10541e999d6210caf6b88ecb5c1010e831b2f4d4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
* qbs files: Consolidate includePaths in QtcLibrary and QtcPluginOrgad Shaneh2012-10-051-7/+0
| | | | | | | Avoid using "." as includePath when it is unneeded Change-Id: I9bc6f4ebe50409f49782520033fd5f098aed10d0 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* qbs files: Sort filesOrgad Shaneh2012-10-031-28/+28
| | | | | Change-Id: I6514deb70162bd52687e6143813bcf1325a797db Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* RemoteLinux: Remove dependency on Qt4ProjectManager.Christian Kandeler2012-08-241-11/+2
| | | | | | | | | | | | | | | | | | 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>