forked from qt-creator/qt-creator
winrt: Add runnable to run configuration
When Creator checks whether the application that is being debugged is a debug build, it gets its information from the runnable so we have to provide one when winrt is used. Change-Id: I2259783f82eef96b50ba5f804306e5225919d24b Reviewed-by: hjk <hjk@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -32,6 +32,8 @@
|
|||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
|
#include <projectexplorer/runnables.h>
|
||||||
|
|
||||||
#include <qmakeprojectmanager/qmakeproject.h>
|
#include <qmakeprojectmanager/qmakeproject.h>
|
||||||
|
|
||||||
namespace WinRt {
|
namespace WinRt {
|
||||||
@@ -93,5 +95,44 @@ QString WinRtRunConfiguration::buildSystemTarget() const
|
|||||||
->mapProFilePathToTarget(Utils::FileName::fromString(m_proFilePath));
|
->mapProFilePathToTarget(Utils::FileName::fromString(m_proFilePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProjectExplorer::Runnable WinRtRunConfiguration::runnable() const
|
||||||
|
{
|
||||||
|
ProjectExplorer::StandardRunnable r;
|
||||||
|
r.executable = executable();
|
||||||
|
r.commandLineArguments = arguments();
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString WinRtRunConfiguration::executable() const
|
||||||
|
{
|
||||||
|
QmakeProjectManager::QmakeProject *project
|
||||||
|
= static_cast<QmakeProjectManager::QmakeProject *>(target()->project());
|
||||||
|
if (!project)
|
||||||
|
return QString();
|
||||||
|
|
||||||
|
QmakeProjectManager::QmakeProFile *rootProFile = project->rootProFile();
|
||||||
|
if (!rootProFile)
|
||||||
|
return QString();
|
||||||
|
|
||||||
|
const QmakeProjectManager::QmakeProFile *pro
|
||||||
|
= rootProFile->findProFile(Utils::FileName::fromString(m_proFilePath));
|
||||||
|
if (!pro)
|
||||||
|
return QString();
|
||||||
|
|
||||||
|
QmakeProjectManager::TargetInformation ti = pro->targetInformation();
|
||||||
|
if (!ti.valid)
|
||||||
|
return QString();
|
||||||
|
|
||||||
|
QString destDir = ti.destDir.toString();
|
||||||
|
if (destDir.isEmpty())
|
||||||
|
destDir = ti.buildDir.toString();
|
||||||
|
else if (QDir::isRelativePath(destDir))
|
||||||
|
destDir = QDir::cleanPath(ti.buildDir.toString() + '/' + destDir);
|
||||||
|
|
||||||
|
QString executable = QDir::cleanPath(destDir + '/' + ti.target);
|
||||||
|
executable = Utils::HostOsInfo::withExecutableSuffix(executable);
|
||||||
|
return executable;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace WinRt
|
} // namespace WinRt
|
||||||
|
@@ -48,6 +48,8 @@ public:
|
|||||||
|
|
||||||
QString buildSystemTarget() const final;
|
QString buildSystemTarget() const final;
|
||||||
|
|
||||||
|
ProjectExplorer::Runnable runnable() const override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void argumentsChanged(QString);
|
void argumentsChanged(QString);
|
||||||
void uninstallAfterStopChanged(bool);
|
void uninstallAfterStopChanged(bool);
|
||||||
@@ -58,6 +60,8 @@ private:
|
|||||||
|
|
||||||
QString m_proFilePath;
|
QString m_proFilePath;
|
||||||
bool m_uninstallAfterStop = false;
|
bool m_uninstallAfterStop = false;
|
||||||
|
|
||||||
|
QString executable() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user