aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-04-16 15:57:20 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-04-17 14:14:24 +0000
commitc6cd9e8fbe9edd23fdbea859b6fc604b4e7d22b3 (patch)
treeb1f0fe2d4d0d5dd20ab0fcf95a88e0ddc5e00fba /src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
parent780d4c6a434c84c7bfdd6b2cf0020891481f7b76 (diff)
Qbs run config: Run executable from installed location, if possible
It's been like that for a long time, but the behavior was inadvertantly changed in a recent refactoring. Change-Id: I2f301c995c1f9bb235718e02326c4c64dea91694 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp')
-rw-r--r--src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
index 13441da885..64b6436818 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
@@ -31,6 +31,7 @@
#include <coreplugin/variablechooser.h>
+#include <projectexplorer/deploymentdata.h>
#include <projectexplorer/localenvironmentaspect.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runconfigurationaspects.h>
@@ -165,11 +166,22 @@ void QbsRunConfiguration::addToBaseEnvironment(Utils::Environment &env) const
m_envCache.insert(key, env);
}
+Utils::FileName QbsRunConfiguration::executableToRun(const BuildTargetInfo &targetInfo) const
+{
+ const FileName appInBuildDir = targetInfo.targetFilePath;
+ if (target()->deploymentData().localInstallRoot().isEmpty())
+ return appInBuildDir;
+ const QString deployedAppFilePath = target()->deploymentData()
+ .deployableForLocalFile(appInBuildDir.toString()).remoteFilePath();
+ const FileName appInLocalInstallDir = target()->deploymentData().localInstallRoot()
+ + deployedAppFilePath;
+ return appInLocalInstallDir.exists() ? appInLocalInstallDir : appInBuildDir;
+}
+
void QbsRunConfiguration::updateTargetInformation()
{
BuildTargetInfo bti = target()->applicationTargets().buildTargetInfo(buildKey());
- FileName executable = bti.targetFilePath;
-
+ const FileName executable = executableToRun(bti);
auto terminalAspect = extraAspect<TerminalAspect>();
if (!terminalAspect->isUserSet())
terminalAspect->setUseTerminal(bti.usesTerminal);