From 4bbbe06bef637e97f67db8b0b31bffb9cdd849d3 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 12 Feb 2013 00:25:23 +0100 Subject: qmake: added file deployment support for winrt and winphone targets The user needs to specify the DEPLOYMENT variable. The syntax is the same as previously used for DEPLOYMENT. For more info please refer to the qmake documentation. The change adds a new itemgroup, "Deployment Files". All files in this itemgroup are marked as DeploymentContent and are then packaged with the application either as XAP or the WinRT specific file format. Change-Id: Icf85887287c1c97eb782704340eaa3f8dde6719e Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msbuild_objectmodel.cpp | 29 ++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'qmake/generators/win32/msbuild_objectmodel.cpp') diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 0c29008610..ff7779f79f 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -568,6 +568,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool) addFilters(tempProj, xmlFilter, "Resource Files"); addFilters(tempProj, xmlFilter, "Source Files"); addFilters(tempProj, xmlFilter, "Translation Files"); + addFilters(tempProj, xmlFilter, "Deployment Files"); for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) addFilters(tempProj, xmlFilter, tempProj.ExtraCompilers.at(x)); @@ -581,6 +582,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool) outputFilter(tempProj, xml, xmlFilter, "Translation Files"); outputFilter(tempProj, xml, xmlFilter, "Form Files"); outputFilter(tempProj, xml, xmlFilter, "Resource Files"); + outputFilter(tempProj, xml, xmlFilter, "Deployment Files"); for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) { outputFilter(tempProj, xml, xmlFilter, tempProj.ExtraCompilers.at(x)); @@ -790,6 +792,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) addFilters(tool, xmlFilter, "Resource Files"); addFilters(tool, xmlFilter, "Source Files"); addFilters(tool, xmlFilter, "Translation Files"); + addFilters(tool, xmlFilter, "Deployment Files"); for (int x = 0; x < tool.ExtraCompilers.count(); ++x) addFilters(tool, xmlFilter, tool.ExtraCompilers.at(x)); @@ -803,6 +806,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) outputFilter(tool, xml, xmlFilter, "Translation Files"); outputFilter(tool, xml, xmlFilter, "Form Files"); outputFilter(tool, xml, xmlFilter, "Resource Files"); + outputFilter(tool, xml, xmlFilter, "Deployment Files"); for (int x = 0; x < tool.ExtraCompilers.count(); ++x) { outputFilter(tool, xml, xmlFilter, tool.ExtraCompilers.at(x)); } @@ -1728,6 +1732,8 @@ void VCXProjectWriter::addFilters(VCProject &project, XmlOutput &xmlFilter, cons filter = singleCfg.FormFiles; } else if (filtername == "Resource Files") { filter = singleCfg.ResourceFiles; + } else if (filtername == "Deployment Files") { + filter = singleCfg.DeploymentFiles; } else { // ExtraCompilers filter = project.SingleProjects[i].filterForExtraCompiler(filtername); @@ -1775,6 +1781,8 @@ void VCXProjectWriter::outputFilter(VCProject &project, XmlOutput &xml, XmlOutpu filter = singleCfg.FormFiles; } else if (filtername == "Resource Files") { filter = singleCfg.ResourceFiles; + } else if (filtername == "Deployment Files") { + filter = singleCfg.DeploymentFiles; } else { // ExtraCompilers filter = project.SingleProjects[i].filterForExtraCompiler(filtername); @@ -1826,6 +1834,8 @@ void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, Xml filter = singleCfg.FormFiles; } else if (filtername.startsWith("Resource Files")) { filter = singleCfg.ResourceFiles; + } else if (filtername.startsWith("Deployment Files")) { + filter = singleCfg.DeploymentFiles; } else { // ExtraCompilers filter = project.SingleProjects[i].filterForExtraCompiler(filtername); @@ -1956,7 +1966,8 @@ bool VCXProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOut } // Actual XML output ---------------------------------- - if (filter.useCustomBuildTool || filter.useCompilerTool || !inBuild) { + if (filter.useCustomBuildTool || filter.useCompilerTool + || !inBuild || filtername.startsWith("Deployment Files")) { if (filter.useCustomBuildTool) { @@ -1971,7 +1982,8 @@ bool VCXProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOut xml << tag("CustomBuild") << attrTag("Include",Option::fixPathToLocalOS(filename)); - if ( filtername.startsWith("Form Files") || filtername.startsWith("Generated Files") || filtername.startsWith("Resource Files") ) + if (filtername.startsWith("Form Files") || filtername.startsWith("Generated Files") + || filtername.startsWith("Resource Files") || filtername.startsWith("Deployment Files")) xml << attrTagS("FileType", "Document"); } @@ -2044,6 +2056,13 @@ bool VCXProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOut xml << tag("ResourceCompile") << attrTag("Include",Option::fixPathToLocalOS(filename)); } + } else if (filtername.startsWith("Deployment Files")) { + xmlFilter << tag("None") + << attrTag("Include",Option::fixPathToLocalOS(filename)) + << attrTagS("Filter", filtername); + + xml << tag("None") + << attrTag("Include",Option::fixPathToLocalOS(filename)); } } @@ -2054,6 +2073,12 @@ bool VCXProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, XmlOut << valueTag("true"); } + if (filtername.startsWith("Deployment Files") && inBuild) { + xml << tag("DeploymentContent") + << attrTag("Condition", condition) + << valueTag("true"); + } + if (filter.useCompilerTool) { if ( !filter.CompilerTool.ForcedIncludeFiles.isEmpty() ) { -- cgit v1.2.3