From d5e52ecf6da473591edd83dc6609301421fc51b9 Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Sun, 29 Dec 2013 14:54:48 +0200 Subject: qmake vcproj: Support setting the SDK version This adds the required members to allow setting the SDK version, and uses them when creating WinRT projects. Task-number: QTBUG-35328 Change-Id: I500ea77c41e27cbcc850462034c0eba8c5d1f124 Reviewed-by: Joerg Bornemann Reviewed-by: Oliver Wolff --- qmake/generators/win32/msbuild_objectmodel.cpp | 23 ++++++++++++----------- qmake/generators/win32/msvc_objectmodel.h | 2 ++ qmake/generators/win32/msvc_vcproj.cpp | 2 ++ 3 files changed, 16 insertions(+), 11 deletions(-) (limited to 'qmake') diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 1b18c8e91f..b7f66a1f8f 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -632,18 +632,19 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) << tagValue("RootNamespace", tool.Name) << tagValue("Keyword", tool.Keyword); - if (tool.SingleProjects.at(0).Configuration.WinRT) { - xml << tagValue("MinimumVisualStudioVersion", "11.0"); - if (tool.SingleProjects.at(0).Configuration.WinPhone) + if (isWinRT) { + xml << tagValue("MinimumVisualStudioVersion", tool.Version); + if (isPhone) { xml << tagValue("WinMDAssembly", "true"); - else - xml << tagValue("AppContainerApplication", "true"); - } - - if (tool.SingleProjects.at(0).Configuration.WinPhone - && tool.SingleProjects.at(0).Configuration.ConfigurationType == typeApplication) { - xml << tagValue("XapOutputs", "true"); - xml << tagValue("XapFilename", "$(RootNamespace)_$(Configuration)_$(Platform).xap"); + if (tool.SingleProjects.at(0).Configuration.ConfigurationType == typeApplication) { + xml << tagValue("XapOutputs", "true"); + xml << tagValue("XapFilename", "$(RootNamespace)_$(Configuration)_$(Platform).xap"); + } + } else { + xml << tagValue("AppContainerApplication", "true") + << tagValue("ApplicationType", "Windows Store") + << tagValue("ApplicationTypeRevision", tool.SdkVersion); + } } xml << closetag(); diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 58b528301c..d42b1cf02e 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -990,6 +990,7 @@ public: QString SccProjectName; QString SccLocalPath; QString PlatformName; + QString SdkVersion; // XML sub-parts VCConfiguration Configuration; @@ -1129,6 +1130,7 @@ public: QString SccProjectName; QString SccLocalPath; QString PlatformName; + QString SdkVersion; // Single projects QList SingleProjects; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index ceccbca89e..d2ce3306fb 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -289,6 +289,7 @@ bool VcprojGenerator::writeProjectMakefile() mergedProjects.at(0)->writePrlFile(); mergedProject.Name = project->first("QMAKE_PROJECT_NAME").toQString(); mergedProject.Version = mergedProjects.at(0)->vcProject.Version; + mergedProject.SdkVersion = mergedProjects.at(0)->vcProject.SdkVersion; mergedProject.ProjectGUID = project->isEmpty("QMAKE_UUID") ? getProjectUUID().toString().toUpper() : project->first("QMAKE_UUID").toQString(); mergedProject.Keyword = project->first("VCPROJ_KEYWORD").toQString(); mergedProject.SccProjectName = mergedProjects.at(0)->vcProject.SccProjectName; @@ -915,6 +916,7 @@ void VcprojGenerator::initProject() } else { vcProject.PlatformName = project->values("CE_SDK").join(' ') + " (" + project->first("CE_ARCH") + ")"; } + vcProject.SdkVersion = project->first("WINSDK_VER").toQString(); // These are not used by Qt, but may be used by customers vcProject.SccProjectName = project->first("SCCPROJECTNAME").toQString(); vcProject.SccLocalPath = project->first("SCCLOCALPATH").toQString(); -- cgit v1.2.3