RemoteLinux: Use the "install to local dir" step in derived plugins

That is, Boot2Qt and Qnx.

Task-number: QTCREATORBUG-22822
Change-Id: Id48069c6ee2bc857a94be173b6c1de9bc69404a8
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2019-09-26 14:27:41 +02:00
parent d4c0f9e510
commit d5f3335c5e
5 changed files with 20 additions and 8 deletions

View File

@@ -33,8 +33,9 @@
#include <projectexplorer/project.h> #include <projectexplorer/project.h>
#include <projectexplorer/target.h> #include <projectexplorer/target.h>
#include <remotelinux/remotelinuxcheckforfreediskspacestep.h>
#include <remotelinux/genericdirectuploadstep.h> #include <remotelinux/genericdirectuploadstep.h>
#include <remotelinux/makeinstallstep.h>
#include <remotelinux/remotelinuxcheckforfreediskspacestep.h>
#include <remotelinux/remotelinuxdeployconfiguration.h> #include <remotelinux/remotelinuxdeployconfiguration.h>
using namespace ProjectExplorer; using namespace ProjectExplorer;
@@ -51,6 +52,11 @@ QdbDeployConfigurationFactory::QdbDeployConfigurationFactory()
"Deploy to Boot2Qt target")); "Deploy to Boot2Qt target"));
setUseDeploymentDataView(); setUseDeploymentDataView();
addInitialStep(RemoteLinux::MakeInstallStep::stepId(), [](Target *target) {
const Project * const prj = target->project();
return prj->deploymentKnowledge() == DeploymentKnowledge::Bad
&& prj->hasMakeInstallEquivalent();
});
addInitialStep(RemoteLinuxCheckForFreeDiskSpaceStep::stepId()); addInitialStep(RemoteLinuxCheckForFreeDiskSpaceStep::stepId());
addInitialStep(QdbStopApplicationStep::stepId()); addInitialStep(QdbStopApplicationStep::stepId());
addInitialStep(GenericDirectUploadStep::stepId()); addInitialStep(GenericDirectUploadStep::stepId());

View File

@@ -46,6 +46,7 @@
#include <remotelinux/remotelinuxcheckforfreediskspacestep.h> #include <remotelinux/remotelinuxcheckforfreediskspacestep.h>
#include <remotelinux/genericdirectuploadstep.h> #include <remotelinux/genericdirectuploadstep.h>
#include <remotelinux/makeinstallstep.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
@@ -175,8 +176,8 @@ public:
QdbDeployStepFactory<RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep> QdbDeployStepFactory<RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep>
m_checkForFreeDiskSpaceStepFactory; m_checkForFreeDiskSpaceStepFactory;
QdbDeployStepFactory<RemoteLinux::GenericDirectUploadStep> QdbDeployStepFactory<RemoteLinux::GenericDirectUploadStep> m_directUploadStepFactory;
m_directUploadStepFactory; QdbDeployStepFactory<RemoteLinux::MakeInstallStep> m_makeInstallStepFactory;
const QList<Core::Id> supportedRunConfigs { const QList<Core::Id> supportedRunConfigs {
m_runConfigFactory.id(), m_runConfigFactory.id(),

View File

@@ -55,6 +55,7 @@
#include <projectexplorer/toolchain.h> #include <projectexplorer/toolchain.h>
#include <remotelinux/genericdirectuploadstep.h> #include <remotelinux/genericdirectuploadstep.h>
#include <remotelinux/makeinstallstep.h>
#include <remotelinux/remotelinuxcheckforfreediskspacestep.h> #include <remotelinux/remotelinuxcheckforfreediskspacestep.h>
#include <qtsupport/qtkitinformation.h> #include <qtsupport/qtkitinformation.h>
@@ -90,6 +91,11 @@ public:
addSupportedTargetDeviceType(Constants::QNX_QNX_OS_TYPE); addSupportedTargetDeviceType(Constants::QNX_QNX_OS_TYPE);
setUseDeploymentDataView(); setUseDeploymentDataView();
addInitialStep(RemoteLinux::MakeInstallStep::stepId(), [](Target *target) {
const Project * const prj = target->project();
return prj->deploymentKnowledge() == DeploymentKnowledge::Bad
&& prj->hasMakeInstallEquivalent();
});
addInitialStep(DeviceCheckBuildStep::stepId()); addInitialStep(DeviceCheckBuildStep::stepId());
addInitialStep(RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep::stepId()); addInitialStep(RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep::stepId());
addInitialStep(RemoteLinux::GenericDirectUploadStep::stepId()); addInitialStep(RemoteLinux::GenericDirectUploadStep::stepId());
@@ -110,6 +116,7 @@ public:
QnxDeployConfigurationFactory deployConfigFactory; QnxDeployConfigurationFactory deployConfigFactory;
GenericQnxDeployStepFactory<RemoteLinux::GenericDirectUploadStep> directUploadDeployFactory; GenericQnxDeployStepFactory<RemoteLinux::GenericDirectUploadStep> directUploadDeployFactory;
GenericQnxDeployStepFactory<RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep> checkForFreeDiskSpaceDeployFactory; GenericQnxDeployStepFactory<RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep> checkForFreeDiskSpaceDeployFactory;
GenericQnxDeployStepFactory<RemoteLinux::MakeInstallStep> makeInstallDeployFactory;
GenericQnxDeployStepFactory<DeviceCheckBuildStep> checkBuildDeployFactory; GenericQnxDeployStepFactory<DeviceCheckBuildStep> checkBuildDeployFactory;
QnxRunConfigurationFactory runConfigFactory; QnxRunConfigurationFactory runConfigFactory;
QnxSettingsPage settingsPage; QnxSettingsPage settingsPage;

View File

@@ -45,7 +45,6 @@ using namespace ProjectExplorer;
using namespace Utils; using namespace Utils;
namespace RemoteLinux { namespace RemoteLinux {
namespace Internal {
const char MakeAspectId[] = "RemoteLinux.MakeInstall.Make"; const char MakeAspectId[] = "RemoteLinux.MakeInstall.Make";
const char InstallRootAspectId[] = "RemoteLinux.MakeInstall.InstallRoot"; const char InstallRootAspectId[] = "RemoteLinux.MakeInstall.InstallRoot";
@@ -228,5 +227,4 @@ bool MakeInstallStep::fromMap(const QVariantMap &map)
return true; return true;
} }
} // namespace Internal
} // namespace RemoteLinux } // namespace RemoteLinux

View File

@@ -25,15 +25,16 @@
#pragma once #pragma once
#include "remotelinux_export.h"
#include <projectexplorer/deploymentdata.h> #include <projectexplorer/deploymentdata.h>
#include <projectexplorer/makestep.h> #include <projectexplorer/makestep.h>
namespace Utils { class FilePath; } namespace Utils { class FilePath; }
namespace RemoteLinux { namespace RemoteLinux {
namespace Internal {
class MakeInstallStep : public ProjectExplorer::MakeStep class REMOTELINUX_EXPORT MakeInstallStep : public ProjectExplorer::MakeStep
{ {
Q_OBJECT Q_OBJECT
public: public:
@@ -62,5 +63,4 @@ private:
bool m_isCmakeProject = false; bool m_isCmakeProject = false;
}; };
} // namespace Internal
} // namespace RemoteLinux } // namespace RemoteLinux