From 036cfadcc690b797c3a9b68b026f08f95b82d5ca Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 12 Feb 2013 00:08:28 +0100 Subject: qmake: added WinRT and WinPhone configuration switch qmakespec for either WinRT or WinPhone have to specify QMAKE_PLATFORM with winrt and/or winphone. Change-Id: I87e0063881e6edd65de14adb006949247ce49904 Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msbuild_objectmodel.cpp | 22 ++++++++++++++++++++-- qmake/generators/win32/msvc_objectmodel.cpp | 2 ++ qmake/generators/win32/msvc_objectmodel.h | 1 + qmake/generators/win32/msvc_vcproj.cpp | 6 ++++++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index b20f3c5ec4..5c1a0e8ecf 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -620,8 +620,23 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) << attrTag("Label", "Globals") << tagValue("ProjectGuid", tool.ProjectGUID) << tagValue("RootNamespace", tool.Name) - << tagValue("Keyword", tool.Keyword) - << closetag(); + << tagValue("Keyword", tool.Keyword); + + if (tool.SingleProjects.at(0).Configuration.WinRT) { + xml << tagValue("MinimumVisualStudioVersion", "11.0"); + if (tool.SingleProjects.at(0).Configuration.WinPhone) + 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"); + } + + xml << closetag(); // config part. xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); @@ -792,6 +807,9 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); + if (tool.SingleProjects.at(0).Configuration.WinPhone) + xml << import("Project", "$(MSBuildExtensionsPath)\\Microsoft\\WindowsPhone\\v8.0\\Microsoft.Cpp.WindowsPhone.8.0.targets"); + xml << tag("ImportGroup") << attrTag("Label", "ExtensionTargets") << closetag(); diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index d6d40bcc68..3b570c1161 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -2102,6 +2102,8 @@ VCPreLinkEventTool::VCPreLinkEventTool() VCConfiguration::VCConfiguration() : ATLMinimizesCRunTimeLibraryUsage(unset), + WinRT(false), + WinPhone(false), BuildBrowserInformation(unset), CharacterSet(charSetNotSet), ConfigurationType(typeApplication), diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 034825ed44..6473a8845a 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -862,6 +862,7 @@ public: ~VCConfiguration(){} DotNET CompilerVersion; + bool WinRT, WinPhone; // Variables triState ATLMinimizesCRunTimeLibraryUsage; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index d550748c9b..c4806f3e8f 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -968,6 +968,12 @@ void VcprojGenerator::initConfiguration() conf.PrimaryOutput.append(project->first("TARGET_VERSION_EXT").toQString()); } + if (conf.CompilerVersion >= NET2012) { + conf.WinRT = project->isActiveConfig("winrt"); + if (conf.WinRT) + conf.WinPhone = project->isActiveConfig("winphone"); + } + conf.Name = project->values("BUILD_NAME").join(' '); if (conf.Name.isEmpty()) conf.Name = isDebug ? "Debug" : "Release"; -- cgit v1.2.3