aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-10-08 14:34:26 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-10-10 07:42:18 +0000
commitd56e88d36a09989ed572781ecca224cd31635d5d (patch)
tree6deb589492a4ad9f4974da105d15b81cb85e147c
parent2896e5f5e289a30928ab679c99d7de68d4a903ac (diff)
RemoteLinux: Fix look-up of remote file path in deployment data
If the deployment configuration contains an "install into temp dir" step, then the local file paths of the binaries built by the build tool will not be in the list of deployable files, because all deployables come from the temporary install dir. Therefore, look for just a file name match as a fallback. Fixes: QTCREATORBUG-21235 Change-Id: Ie3fad515515b4f28cc6bdef1254f4c05a0557569 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp2
-rw-r--r--src/plugins/projectexplorer/deploymentdata.cpp8
-rw-r--r--src/plugins/projectexplorer/target.cpp1
3 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index f7cfa7f33f..d782c26d4e 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -237,7 +237,7 @@ DeploymentData CMakeBuildConfiguration::deploymentData() const
for (const CMakeBuildTarget &ct : m_buildTargets) {
if (ct.targetType == ExecutableType || ct.targetType == DynamicLibraryType) {
if (!ct.executable.isEmpty()
- && !result.deployableForLocalFile(ct.executable.toString()).isValid()) {
+ && result.deployableForLocalFile(ct.executable.toString()).localFilePath() != ct.executable) {
result.addFile(ct.executable.toString(),
deploymentPrefix + buildDir.relativeFilePath(ct.executable.toFileInfo().dir().path()),
DeployableFile::TypeExecutable);
diff --git a/src/plugins/projectexplorer/deploymentdata.cpp b/src/plugins/projectexplorer/deploymentdata.cpp
index acb8878de6..aa24a3ff3c 100644
--- a/src/plugins/projectexplorer/deploymentdata.cpp
+++ b/src/plugins/projectexplorer/deploymentdata.cpp
@@ -57,9 +57,15 @@ void DeploymentData::addFile(const QString &localFilePath, const QString &remote
DeployableFile DeploymentData::deployableForLocalFile(const QString &localFilePath) const
{
- return Utils::findOrDefault(m_files, [&localFilePath](const DeployableFile &d) {
+ const DeployableFile f = Utils::findOrDefault(m_files, [&localFilePath](const DeployableFile &d) {
return d.localFilePath().toString() == localFilePath;
});
+ if (f.isValid())
+ return f;
+ const QString localFileName = QFileInfo(localFilePath).fileName();
+ return Utils::findOrDefault(m_files, [&localFileName](const DeployableFile &d) {
+ return d.localFilePath().toFileInfo().fileName() == localFileName;
+ });
}
bool DeploymentData::operator==(const DeploymentData &other) const
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index 44be607065..8ff05c7141 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -337,6 +337,7 @@ void Target::setDeploymentData(const DeploymentData &deploymentData)
if (d->m_deploymentData != deploymentData) {
d->m_deploymentData = deploymentData;
emit deploymentDataChanged();
+ emit applicationTargetsChanged();
}
}