| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I40c2639b0cbc0d36920394a2ff34fbfcfdadb27f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
At most a dozen lines each left.
Change-Id: Ifbf34f814266ba7bee83d3fee9db831eb450dfc4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I736d76e072a97fa148286c30c4ca36bf4c1253e2
Reviewed-by: hjk <hjk@qt.io>
|
|
|
|
|
| |
Change-Id: I41dda4b358d042b3857c90527f386133e6d425e2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I73331985eb68065b5fb123ff4491888d824de766
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Adds a generic interface (AbstractRemoteLinuxRunConfiguration), so plugins
can ship a custom remote runconfig.
Change-Id: I4ef8e39c4c69224d4e55224c782f3d544f10c945
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Idee11afe23fd6fa271a0776a460d227ced9b7916
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
|
|
|
|
|
| |
Change-Id: I3ff14691b4f9c80793a491b61444f8ceeb05a4fb
Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
|
|
|
|
|
|
|
| |
... and attach it to remote linux runconfigurations
Change-Id: I5596b7a237ac6ef4a834324f95f462adbe28e722
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
|
|
|
|
|
|
|
|
| |
the information is redundant now
Change-Id: Icc8c8b4ace11538d45c6c9e1dbe5a7976f4743e1
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
|
|
|
|
|
| |
Change-Id: I4025539f3875e79f03743ba9ed3fd09cd31b998d
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
|
|
|
|
|
| |
Change-Id: I25645bb625b467c6f9d895ff89a70acd6a25683e
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
|
|
|
|
|
| |
Change-Id: I2b6c5876cafb7cf19fc3040bc84fd88a90b6c0e0
Reviewed-by: hjk <qthjk@ovi.com>
|
|
|
|
|
|
| |
Change-Id: I10541e999d6210caf6b88ecb5c1010e831b2f4d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I7e8a99d3339d2040a23e4e78816b13b57197dcdb
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ic382437bb99fe1b6bda9b1252e286cb3b9476191
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
|
|
|
|
|
| |
Change-Id: Iafd7f109de3076375e667aff0c429405cef07b55
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
|
|
|
|
|
| |
Change-Id: Icc33981a625da093600273f84b681e79a5a4fa22
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I99dbef56a2a5b06bb4b89ca442e44bf586efdb22
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I62bce3b563b6aba481642fac0d427c0f0d3b2ddd
Reviewed-by: hjk <qthjk@ovi.com>
|
|
|
|
|
|
|
|
| |
More stuff (e.g. deployment information) will move into that
class shortly.
Change-Id: I9ad785533d54859e72079b54796710707f716469
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|