summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2013-02-12 00:31:33 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-17 23:09:24 +0200
commit898b8d05c51400f9e1c8c9c74f631322c351d3b4 (patch)
tree24c28af0a20389b62e43037427b9e70bceea7565 /qmake
parentff7b57bbb936bc86a64aa2a947fa8984adf400c8 (diff)
qmake: added WMAppManifest generation for winphone target
Platform specific qmakespec needs to enable: autogen_wmappmanifest and winphone. Manifest will be generated once and only for the application template. The Manifest will generated from following variables: * PRODUCTID - the GUID (application specific) * PUBLISHERID - GUID (publisher specific) * TARGET - short application name (executable) * AUTHOR * PUBLISHER * DESCRIPTION - application description Change-Id: I225c24dc256c57451775e37658080e88b842a7d8 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'qmake')
-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