Commit Graph

52 Commits

Author SHA1 Message Date
Eike Ziller
8201d49ea0 Merge remote-tracking branch 'origin/4.10'
Change-Id: I4d24269ef040c45e2143dfa86d1be3f7e8008521
2019-08-15 08:57:27 +02:00
Christian Kandeler
1f4176275e RemoteLinux: Fix tar packaging for long file paths
Contrary to what we assumed, long file paths cannot be split up
arbitrarily, but only at separators.

Fixes: QTCREATORBUG-22815
Change-Id: Id13036f3d73cc5d6b272066c0f8a26d9748ce6b8
Reviewed-by: hjk <hjk@qt.io>
2019-08-13 11:44:58 +00:00
hjk
6dcdacb10e RemoteLinux: Remove more unneeded qtsupport include
Change-Id: I7cdfd0a4cfa58424ddf1105c144acaba07f204b3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-08-09 12:35:02 +00:00
hjk
c39f2866c7 RemoteLinux: Simplify AbstractPackaging and derived step
Change-Id: I1a9fc0947fcca358ce3e8ca24c6430bc973f131f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-06-25 16:24:18 +00:00
hjk
f4c9e5e5c4 More FileName::appendPath() -> .pathAppended()
Change-Id: I403d34e4f52f758339c158efc7a11fd329e3e043
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 11:55:04 +00:00
Christian Kandeler
966f4ea6a9 ProjectExplorer: Rework the build step run interface
Originally, the build manager used to run all build steps in a dedicated
thread. Communication between the step and the manager happened via a
QFutureInterface that was passed into the step's run() function.
Later, new steps were added that operated asynchronously, so the build
manager had to differentiate between the different kinds of steps for
starting and stopping.
These days, almost all build and deploy steps work asynchronously, which
made the QFuture-based interface look increasingly odd.
With this patch, all build steps are expected to work asynchronously, so
the build manager no longer needs to differentiate. Steps are started
and requested to stop via the run() and cancel() functions,
respectively, and emit the finished() signal when they are done. Build
step implementors no longer have to deal with a QFutureInterface. For
steps whose implementation is inherently synchronous, the BuildStep base
class offers a runInThread() function.

Change-Id: If905c68b234c5a669f6e19f43142eaa57d594803
Reviewed-by: hjk <hjk@qt.io>
2019-01-31 16:10:01 +00:00
hjk
f007bc7593 ProjectExplorer: Simplify BuildStep::init() signature
The extra parameter was always computed but used only in one place,
and that use got removed lately.

Change-Id: Ie10c0107ca70ee97ce03f83294992aab8d1a3ffe
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-01-18 09:11:37 +00:00
hjk
dcd0faf4c4 RemoteLinux: Use aspects in TarPackageCreationStep
Less code.

Change-Id: I0cd0e6ff04c71c1a2a514388032521152f715094
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-10-17 13:39:05 +00:00
Ulf Hermann
f4a12d488c RemoteLinux: Check remote files when deploying
We discern between local and remote timestamps, and if the local
timestamp matches, we still query the remote file via SSH to see if that
one differs. If so, we still upload the file. After uploading a file we
always query its remote timestamp and save it along with the local one.

Fixes: QTCREATORBUG-21225
Change-Id: Ieeae1c3e61907beb7ad0fe9b03772af6ae351be7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-10-17 13:13:32 +00:00
hjk
cbb98bedcf ProjectExplorer: Merge SimpleBuildStepWidget into BuildStepWidget
The extra m_step member is not worth the abstraction, especially
since almost all non-SimpleBuildStepWidget have something similar,
too. Also, as several derived classes needed to correct
SimpleBuildStepWidget's setShowWidget(false).

Change-Id: I6e80d8c84c363b90dc27c70abd7fa6cefa1ed91e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-10-12 16:01:46 +00:00
Orgad Shaneh
25f3fe145d RemoteLinux: Remove usage of deprecated QDateTime::toTime_t
Change-Id: I84708eea3f7a24400776169ffaea122e50100d8e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-09-28 11:51:30 +00:00
hjk
d05e906bac ProjectExplorer: Replace virtual BuildStepConfigWidget::showWidget
... by a bool member.

One reason less for the need of custom derived classes, i.e. one
step forward to a setup where the then-generic config widget can be
created in BuildStepListWidget::init() and filled with aspect-
created subwidget, reducing the need of per-BuildStep boilerplate
similar to what was done in RunConfiguration recently.

Task-number: QTCREATORBUG-19985
Change-Id: I85d26bdb6b35d0d6715782214328a40eef87286e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-09-19 13:25:06 +00:00
Robert Loehning
34b8ed1484 RemoteLinux: Initialize members
Change-Id: I0c5cd52747373be0d50ac818dbbeaf39c34fd5fd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-12-12 13:35:03 +00:00
hjk
53a151074a ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setup
This follow the rough pattern of recent *RunConfigurationFactory changes
for build and deploy configurations.

- Collapse the two lines of constructors similar to what
  890c1906e6 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>
2017-12-08 11:17:55 +00:00
Christian Kandeler
c05a3fdb3d Give the values of BuildStep::OutputFormat better names
The old ones did not convey their meaning very well. In particular,
NormalOutput and MessageOutput were easily confused.

Change-Id: Ia0a8c1b1c366ab3f5c59f751b37b8b1f68f6831d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-01-19 16:08:57 +00:00
Christian Kandeler
696a7903ae RemoteLinux: Fix incomplete serialization in TarPackageCreationStep
Serialization of the "incremental deployment" setting was forgotten in
a8854b680e.

Change-Id: I0da294e50faf52a9473c682263ee299da675cb8c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-01-17 14:08:02 +00:00
Daniel Trevitz
a8854b680e RemoteLinux: Add incremental deployment to the TarPackageCreationStep
Patch adds incremental deployment to the tar ball creation. Allows for
only changed files to be deployed in a single tar ball.

Change-Id: I28a0bd1220503125b75a664323b72906b479b821
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-01-02 23:21:41 +00:00
Orgad Shaneh
e3b1c9b912 RemoteLinux: Use Qt5-style connects
The heavy lifting was done by clazy.

Change-Id: I1a03435bbb4281bad4ff64baba0182e0050170d6
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-07-01 11:29:27 +00:00
Tobias Hunger
2e5102f45e BuildStep: Remove finished() signal and use FutureInterface to report
Remove the finished() signal that is (sometimes) used to report that
a buildstep is done and use the FutureInterface for that purpose
consistently.

Change-Id: Ibe5520b562b91f1a7f4fc73ee898b33b930029ec
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-25 11:23:42 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
Tobias Hunger
79f82d0d0a BuildManager: Provide context of earlier build steps to init
This information can be used to get information from earlier steps,
which e.g. queried for android devices to deploy to.

Change-Id: Iefe1c9443915cb6211f86f98ff7aaf3cb75145ba
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2015-11-16 14:04:59 +00:00
Eike Ziller
3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
Christian Kandeler
eccc1198d6 Use double quotes instead of single quotes as per our guidelines.
Change-Id: Ib608bb49e26781aef1914085a5d801fcdcd5eb56
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-04-22 10:06:40 +02:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Oleksii Serdiuk
e0ddfe1a5f RemoteLinux: Add possibility to ignore missing files while deploying.
New "Ignore missing files" checkbox was added to "Upload files via SFTP"
and "Create tarball" deployment steps. If checked, missing files will
produce a warning instead of the error thus preventing deployment
process from failing.

Change-Id: I0c3032746fbaae60aef2345802fc02c9951ab386
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2013-10-01 20:37:32 +02:00
Tobias Hunger
d18b61b85d Core::Id: Remove some explicit casts to Core::Id
Change-Id: Ibe505c8331f7d1280fdb8784a00321742f5d94cb
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-09-03 11:57:23 +02:00
Christian Kandeler
7764f35107 RemoteLinux: Fix typos in tar packaging step.
Change-Id: Ic598eba24da514d56e5e16c443788bd17a670ba5
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-08-09 15:26:02 +02:00
Friedemann Kleint
ebfb3bbca7 Clean headers in RemoteLinux.
Ran script to remove inludes on a trial-and-error basis and
manually corrected it.

Change-Id: Ie7559562218ecab65da17f58e3515556a4a1d5c5
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-04 09:10:40 +02:00
Oswald Buddenhagen
1fda2111d4 Merge remote-tracking branch 'origin/2.6'
Conflicts:
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/debugger/qtmessageloghandler.cpp
	src/plugins/debugger/qtmessagelogwindow.cpp
	src/plugins/madde/maemodeployconfigurationwidget.cpp
	src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
	src/plugins/qmldesigner/designercore/include/widgetqueryview.h
	src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
	src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp
	src/plugins/qnx/bardescriptormagicmatcher.h
	src/plugins/qt4projectmanager/profilekeywords.cpp
	src/plugins/remotelinux/deployablefilesperprofile.cpp
	src/plugins/remotelinux/deployablefilesperprofile.h
	src/plugins/remotelinux/deploymentinfo.cpp
	src/plugins/remotelinux/deploymentsettingsassistant.cpp
	src/plugins/remotelinux/profilesupdatedialog.cpp
	tests/auto/icheckbuild/ichecklib.cpp
	tests/auto/icheckbuild/parsemanager.cpp
	tests/auto/icheckbuild/parsemanager.h

Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
2013-01-31 16:25:33 +01:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
Daniel Teske
6804b52030 TarPackageCreationStep: Use static_cast not qobject_cast
Change-Id: Ief5a5835eb43a7e24db04315166fc3723b9ed997
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
2013-01-24 10:40:50 +01:00
Orgad Shaneh
73d60a5813 RemoteLinux: Compile with QT_NO_CAST_FROM_ASCII
Change-Id: I10541e999d6210caf6b88ecb5c1010e831b2f4d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2012-11-27 14:01:49 +01:00
Eike Ziller
6fd252b0a5 Merge remote-tracking branch 'origin/2.6'
Conflicts:
	share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.cpp
	share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.h
	src/plugins/debugger/qtmessageloghandler.cpp
	src/plugins/debugger/qtmessageloghandler.h
	src/plugins/debugger/qtmessagelogwindow.cpp
	src/plugins/madde/maemodeployconfigurationwidget.cpp
	src/plugins/madde/maemodeployconfigurationwidget.h
	src/plugins/remotelinux/deployablefilesperprofile.cpp
	src/plugins/remotelinux/deployablefilesperprofile.h
	src/plugins/remotelinux/deploymentinfo.cpp
	src/plugins/remotelinux/deploymentinfo.h
	src/plugins/remotelinux/deploymentsettingsassistant.cpp
	src/plugins/remotelinux/profilesupdatedialog.cpp
	src/plugins/remotelinux/remotelinuxdeploymentdatamodel.h
	tests/auto/icheckbuild/ichecklib.cpp
	tests/auto/icheckbuild/ichecklib_global.h
	tests/auto/icheckbuild/parsemanager.cpp
	tests/auto/icheckbuild/parsemanager.h
	tests/manual/ssh/tunnel/tunnel.h

Change-Id: I04d7761df6bd936ad00e0547974284c967d39580
2012-10-05 21:20:50 +02:00
hjk
386ca7c8dd Adjust license headers
Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-10-05 17:12:56 +02:00
Christian Kandeler
3d9e492860 Do not use the fromAscii() and toAscii() functions.
They are deprecated in Qt 5. Use fromLatin1() and toLatin1() instead. In
Qt 5, these always do the same thing as their "Ascii" counterparts. The
same goes for Qt 4, provided QTextCodec::setCodecForCStrings has not
been set, which it hasn't.

Change-Id: I04edeb376762b6671eff8156094f0d5e2cb8e1ea
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2012-09-21 21:03:48 +02:00
Christian Kandeler
6d06d47a6e Do not use qMemSet and qMemCopy.
They are deprecated in Qt 5. Call std::memset and std::memcpy instead.

Change-Id: I53c22283208b4d6fdfcba870c3b141f3c02001bd
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-09-21 15:40:27 +02:00
Christian Kandeler
c7ebfd47a4 RemoteLinux: Remove dependency on Qt4ProjectManager.
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>
2012-08-24 15:44:03 +02:00
Eike Ziller
e0e8cf3ada Contact -> qt-project.org
Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 13:23:21 +02:00
Tobias Hunger
df5dab6382 Use Core::Id in project-related objects
Use Core::Id for all the project related objects in favor of plain
QStrings.

Change-Id: I790ab40cb29899efdb49c413a77609486f52e683
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-04-25 11:49:19 +02:00
Erik Verbruggen
3fa55b7ab9 Removed module names from #include directives.
Getting the #include directives ready for Qt5. This includes the
new-project wizards.

Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-15 16:24:46 +01:00
Christian Kandeler
53e2cbfb7f RemoteLinux: Move some stuff into the new target base class.
All these things were always conceptually per-target, but due to not
having a common target class we had to awkwardly implement the concept
using shared pointers.

Change-Id: I1bb1992a230a485d519a892a6ca602a6846fc3cf
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2012-02-08 14:47:26 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
Nikolai Kosjar
f75abb341e Deploy steps: Introduce SimpleBuildStepConfigWidget.
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>
2012-01-11 16:02:19 +01:00
Nikolai Kosjar
9c7b9fd9f2 Deploy steps: Hide details button if applicable
Task-number: QTCREATORBUG-6674

Change-Id: I3cca8a75b1108f4fede09191cfed76c8fcf44c0e
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>
2011-12-12 11:05:28 +01:00
Eike Ziller
85cf2b661e Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/libs/qmljs/qmljsinterpreter.cpp
	src/libs/qmljs/qmljsinterpreter.h
	src/plugins/debugger/qml/scriptconsole.cpp
	src/plugins/git/gitplugin.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h

Change-Id: Iad59c8d87c72a21c79c047e374c0ab689998af39
2011-11-11 09:46:25 +01:00
hjk
31600758de all: s/info@qt.nokia.com/qt-info@nokia.com/
Change-Id: If18afb5d4665924e7d9250dccbc60a65e6daa75e
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2011-11-03 10:33:19 +01:00
Christian Kandeler
d48087d13d RemoteLinux: Allow skipping default targets in tar packages.
Change-Id: I229aa0ec3bfa1a135c9f14e272900995ac834421
Task-number: QTCREATORBUG-6324
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2011-10-24 18:02:28 +02:00
Daniel Teske
3cc1a2a914 Less magic in BuildStep::buildConfiguration() and deployConfiguration()
Where the deploy stuff depends on the activeBuildConfiguration it's
likely to be wrong or worse could be used to crash creator. So make
those places stand out.
Also if we ever move towards supporting meta-builds of multiple
buildconfigurations at once, then using the active build configuration
is wrong.

Change-Id: I754a77a4a8b352e79e8a6703c26ed41a189cf74e
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
2011-10-24 12:08:04 +02:00
Daniel Teske
487b56b0b7 Make AbstractPackagingStep and derived classes thread safe
Change-Id: I30d412dde2484b756dd2f06ed0a7b5030c14c9eb
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
2011-10-20 16:22:45 +02:00