summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/generators/win32')
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp67
-rw-r--r--qmake/generators/win32/msvc_vcproj.h1
2 files changed, 68 insertions, 0 deletions
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 7f4240f196..730a7cfa46 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -879,6 +879,11 @@ void VcprojGenerator::initProject()
initFormFiles();
initResourceFiles();
initExtraCompilerOutputs();
+ if (vcProject.Configuration.WinRT) {
+ if (vcProject.Configuration.WinPhone
+ && vcProject.Configuration.ConfigurationType == typeApplication)
+ initWMAppManifest();
+ }
// Own elements -----------------------------
vcProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET").toQString());
@@ -1565,6 +1570,68 @@ void VcprojGenerator::initExtraCompilerOutputs()
}
}
+void VcprojGenerator::initWMAppManifest()
+{
+ if (!project->isActiveConfig("autogen_wmappmanifest"))
+ return;
+
+ // autogen_wmappmanifest
+ QFile file(Option::output_dir + "\\WMAppManifest.xml");
+ if (!file.open(QFile::WriteOnly))
+ return;
+
+ QTextStream stream(&file);
+
+ QString productID = project->first("PRODUCTID").toQString();
+ QString target = project->first("TARGET").toQString();
+ QString author = project->first("AUTHOR").toQString();
+ QString publisher = project->first("PUBLISHER").toQString();
+ QString publisherID = project->first("PUBLISHERID").toQString();
+ QString description = project->first("DESCRIPTION").toQString();
+
+ if (author.isEmpty())
+ author = "Qt";
+ if (publisher.isEmpty())
+ publisher = "Qt";
+ if (productID.isEmpty())
+ productID = QUuid::createUuid().toString();
+ if (publisherID.isEmpty())
+ publisherID = QUuid::createUuid().toString();
+
+ stream << "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+ << "<Deployment xmlns=\"http://schemas.microsoft.com/windowsphone/2012/deployment\" AppPlatformVersion=\"8.0\">\n"
+ << " <DefaultLanguage xmlns=\"\" code=\"en-US\"/>\n"
+ << " <App xmlns=\"\" ProductID=\"" << productID << "\" Title=\"" << target
+ << "\" RuntimeType=\"Modern Native\" Version=\"1.0.0.0\""
+ << " Genre=\"apps.normal\" Author=\"" << author
+ << "\" Description=\"" << description << "\" Publisher=\"" << publisher
+ << "\" PublisherID=\"" << publisherID << "\">\n"
+ << " <IconPath IsRelative=\"true\" IsResource=\"false\">ApplicationIcon.png</IconPath>\n"
+ << " <Capabilities>\n"
+ << " <Capability Name=\"ID_CAP_NETWORKING\" />\n"
+ << " <Capability Name=\"ID_CAP_MEDIALIB_AUDIO\" />\n"
+ << " <Capability Name=\"ID_CAP_MEDIALIB_PLAYBACK\" />\n"
+ << " </Capabilities>\n"
+ << " <Tasks>\n"
+ << " <DefaultTask Name=\"_default\" ImagePath=\"" << target << ".exe\" ImageParams=\"\" />\n"
+ << " </Tasks>\n"
+ << " <Tokens>\n"
+ << " <PrimaryToken TokenID=\"" << target << "Token\" TaskName=\"_default\">\n"
+ << " <TemplateType5>\n"
+ << " <Count>0</Count>\n"
+ << " <Title>" << target << "</Title>\n"
+ << " </TemplateType5>\n"
+ << " </PrimaryToken>\n"
+ << " </Tokens>\n"
+ << " <ScreenResolutions>\n"
+ << " <ScreenResolution Name=\"ID_RESOLUTION_WVGA\" />\n"
+ << " <ScreenResolution Name=\"ID_RESOLUTION_WXGA\" />\n"
+ << " <ScreenResolution Name=\"ID_RESOLUTION_HD720P\" />\n"
+ << " </ScreenResolutions>\n"
+ << " </App>\n"
+ << "</Deployment>\n";
+}
+
void VcprojGenerator::initOld()
{
// $$QMAKE.. -> $$MSVCPROJ.. -------------------------------------
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
index 561e56d232..d531085307 100644
--- a/qmake/generators/win32/msvc_vcproj.h
+++ b/qmake/generators/win32/msvc_vcproj.h
@@ -120,6 +120,7 @@ protected:
void initDeploymentFiles();
void initLexYaccFiles();
void initExtraCompilerOutputs();
+ void initWMAppManifest();
void writeSubDirs(QTextStream &t); // Called from VCXProj backend
QUuid getProjectUUID(const QString &filename=QString()); // Called from VCXProj backend