summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Knight <andrew.knight@digia.com>2014-06-15 23:36:16 +0300
committerAndrew Knight <andrew.knight@digia.com>2014-06-19 06:56:32 +0200
commit724d2fc4bf2674a0d52d82738792d55a2a206bc0 (patch)
tree730bd742672203e92a4cdd164eb8bcf7ea4de268
parente3979fe09d7dd3ef1546e97d22d76178c8e38303 (diff)
downloadqt-creator-724d2fc4bf2674a0d52d82738792d55a2a206bc0.tar.gz
Fix winrtrunner device detection and deployment for WP8.1
Add device detection for WP8.1, and use the Appx packaging codepath for these devices. Rely on winrtrunner to automatically select the correct profile. Change-Id: Ibd1d415644fdc8fd007969be25213410c3c0e0a7 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
-rw-r--r--src/plugins/winrt/winrtdevicefactory.cpp26
-rw-r--r--src/plugins/winrt/winrtpackagedeploymentstep.cpp12
-rw-r--r--src/plugins/winrt/winrtpackagedeploymentstep.h1
-rw-r--r--src/plugins/winrt/winrtruncontrol.cpp3
-rw-r--r--src/plugins/winrt/winrtruncontrol.h1
5 files changed, 30 insertions, 13 deletions
diff --git a/src/plugins/winrt/winrtdevicefactory.cpp b/src/plugins/winrt/winrtdevicefactory.cpp
index dbfe6c69ce..fb4d81d4b0 100644
--- a/src/plugins/winrt/winrtdevicefactory.cpp
+++ b/src/plugins/winrt/winrtdevicefactory.cpp
@@ -197,7 +197,7 @@ static int extractDeviceId(QByteArray *line)
static IDevice::MachineType machineTypeFromLine(const QByteArray &line)
{
- return line.startsWith("Emulator ") ? IDevice::Emulator : IDevice::Hardware;
+ return line.contains("Emulator ") ? IDevice::Emulator : IDevice::Hardware;
}
/*
@@ -206,6 +206,19 @@ static IDevice::MachineType machineTypeFromLine(const QByteArray &line)
* Available devices:
* Appx:
* 0 local
+ * Phone:
+ * 0 Device
+ * 1 Emulator 8.1 WVGA 4 inch 512MB
+ * 2 Emulator 8.1 WVGA 4 inch
+ * 3 Emulator 8.1 WXGA 4 inch
+ * 4 Emulator 8.1 720P 4.7 inch
+ * 5 Emulator 8.1 1080P 5.5 inch
+ * 6 Emulator 8.1 1080P 6 inch
+ * 7 WE8.1H Emulator WVGA 512MB
+ * 8 WE8.1H Emulator WVGA
+ * 9 WE8.1H Emulator WXGA
+ * 10 WE8.1H Emulator 720P
+ * 11 WE8.1H Emulator 1080P
* Xap:
* 0 Device
* 1 Emulator WVGA 512MB
@@ -216,7 +229,7 @@ static IDevice::MachineType machineTypeFromLine(const QByteArray &line)
void WinRtDeviceFactory::parseRunnerOutput(const QByteArray &output) const
{
ProjectExplorer::DeviceManager *deviceManager = ProjectExplorer::DeviceManager::instance();
- enum State { StartState, AppxState, XapState };
+ enum State { StartState, AppxState, PhoneState, XapState };
State state = StartState;
int numFound = 0;
int numSkipped = 0;
@@ -224,6 +237,8 @@ void WinRtDeviceFactory::parseRunnerOutput(const QByteArray &output) const
line = line.trimmed();
if (line == "Appx:") {
state = AppxState;
+ } else if (line == "Phone:") {
+ state = PhoneState;
} else if (line == "Xap:") {
state = XapState;
} else {
@@ -239,6 +254,13 @@ void WinRtDeviceFactory::parseRunnerOutput(const QByteArray &output) const
internalName += QStringLiteral("appx.");
deviceType = Constants::WINRT_DEVICE_TYPE_LOCAL;
name = tr("Windows Runtime local UI");
+ } else if (state == PhoneState) {
+ internalName += QStringLiteral("phone.");
+ name = QString::fromLocal8Bit(line);
+ if (machineType == IDevice::Emulator)
+ deviceType = Constants::WINRT_DEVICE_TYPE_EMULATOR;
+ else
+ deviceType = Constants::WINRT_DEVICE_TYPE_PHONE;
} else if (state == XapState) {
internalName += QStringLiteral("xap.");
name = QString::fromLocal8Bit(line);
diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.cpp b/src/plugins/winrt/winrtpackagedeploymentstep.cpp
index 71a53155d3..bbcbf2f2c1 100644
--- a/src/plugins/winrt/winrtpackagedeploymentstep.cpp
+++ b/src/plugins/winrt/winrtpackagedeploymentstep.cpp
@@ -71,15 +71,15 @@ bool WinRtPackageDeploymentStep::init()
if (!qt)
return false;
- m_isWinPhone = (qt->type() == QLatin1String(Constants::WINRT_WINPHONEQT));
-
QString args = QtcProcess::quoteArg(QDir::toNativeSeparators(targetPath));
args += QLatin1Char(' ') + m_args;
- if (m_isWinPhone) {
- m_manifestFileName = QLatin1String("WMAppManifest");
+
+ m_manifestFileName = QStringLiteral("AppxManifest");
+
+ if (qt->type() == QLatin1String(Constants::WINRT_WINPHONEQT)
+ && qt->mkspec().toString().contains(QLatin1String("msvc2012"))) {
m_createMappingFile = true;
- } else {
- m_manifestFileName = QLatin1String("AppxManifest");
+ m_manifestFileName = QStringLiteral("WMAppManifest");
}
if (m_createMappingFile) {
diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.h b/src/plugins/winrt/winrtpackagedeploymentstep.h
index 0c567b93d4..224f8b4676 100644
--- a/src/plugins/winrt/winrtpackagedeploymentstep.h
+++ b/src/plugins/winrt/winrtpackagedeploymentstep.h
@@ -61,7 +61,6 @@ private:
QString m_executablePathInManifest;
QString m_mappingFileContent;
QString m_manifestFileName;
- bool m_isWinPhone;
bool m_createMappingFile;
};
diff --git a/src/plugins/winrt/winrtruncontrol.cpp b/src/plugins/winrt/winrtruncontrol.cpp
index 830ba5c27b..095e554595 100644
--- a/src/plugins/winrt/winrtruncontrol.cpp
+++ b/src/plugins/winrt/winrtruncontrol.cpp
@@ -68,7 +68,6 @@ WinRtRunControl::WinRtRunControl(WinRtRunConfiguration *runConfiguration, RunMod
return;
}
- m_isWinPhone = (qt->type() == QLatin1String(Constants::WINRT_WINPHONEQT));
m_runnerFilePath = qt->binPath().toString() + QStringLiteral("/winrtrunner.exe");
if (!QFile::exists(m_runnerFilePath)) {
appendMessage(tr("Cannot find winrtrunner.exe in \"%1\".").arg(
@@ -175,8 +174,6 @@ void WinRtRunControl::onProcessReadyReadStdErr()
bool WinRtRunControl::startWinRtRunner()
{
QString runnerArgs;
- QtcProcess::addArg(&runnerArgs, QStringLiteral("--profile"));
- QtcProcess::addArg(&runnerArgs, m_isWinPhone ? QStringLiteral("xap") : QStringLiteral("appx"));
if (m_device) {
QtcProcess::addArg(&runnerArgs, QStringLiteral("--device"));
QtcProcess::addArg(&runnerArgs, QString::number(m_device->deviceId()));
diff --git a/src/plugins/winrt/winrtruncontrol.h b/src/plugins/winrt/winrtruncontrol.h
index 8fb84c789d..4015df5824 100644
--- a/src/plugins/winrt/winrtruncontrol.h
+++ b/src/plugins/winrt/winrtruncontrol.h
@@ -76,7 +76,6 @@ private:
QString m_executableFilePath;
QString m_arguments;
bool m_uninstallAfterStop;
- bool m_isWinPhone;
Utils::QtcProcess *m_process;
Utils::Environment m_environment;
};