From e07684294d6a6659997d60ef946b6c2d713d984d Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Tue, 25 Feb 2014 10:19:10 +0200 Subject: [PATCH] Fix WinRT manifest for Visual Studio. Visual Studio does not like empty dependencies block in manifest XML. At least my Visual Studio 2013 fails to open visual manifest editor for XML containing the following block: If the block is removed or if the block has one or more PackageDependency entries the editor accepts it. Moved the block to prf, so that it is only written when project really has dependencies. Also block is moved to prf for consistency. On Windows Phone, where the block is required, it is kept in the output even if it is empty. Change-Id: I531180d0081e4612f75be54f3813831857f1ed43 Reviewed-by: Andrew Knight Reviewed-by: Oliver Wolff Reviewed-by: Oswald Buddenhagen --- .../manifests/8.0/AppxManifest.xml.in | 4 +--- .../manifests/8.0/WMAppManifest.xml.in | 3 +-- .../manifests/8.1/AppxManifest.xml.in | 4 +--- mkspecs/features/winrt/package_manifest.prf | 24 ++++++++++++++----- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/mkspecs/common/winrt_winphone/manifests/8.0/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.0/AppxManifest.xml.in index 42bac8b8b1..6583bf0643 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.0/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.0/AppxManifest.xml.in @@ -32,8 +32,6 @@ - - $${WINRT_MANIFEST.capabilities} - $${WINRT_MANIFEST.dependencies} + $${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} diff --git a/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in index 968f42fa06..5efb9c7b06 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.0/WMAppManifest.xml.in @@ -11,8 +11,7 @@ Description=\"$${WINRT_MANIFEST.description}\" Publisher=\"$${WINRT_MANIFEST.publisher}\" PublisherID=\"$${WINRT_MANIFEST.publisherid}\"> - $${WINRT_MANIFEST.logo_medium} - $${WINRT_MANIFEST.capabilities} + $${WINRT_MANIFEST.logo_medium}$${WINRT_MANIFEST.capabilities} - - $${WINRT_MANIFEST.capabilities} - $${WINRT_MANIFEST.dependencies} + $${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index 8c2943ec70..a959bc5480 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -92,16 +92,28 @@ winphone: INDENT = "$$escape_expand(\\r\\n) " else: INDENT = "$$escape_expand(\\r\\n) " + # Capabilities are given as a string list and may change with the configuration (network, sensors, etc.) WINRT_MANIFEST.capabilities = $$unique(WINRT_MANIFEST.capabilities) - for(CAPABILITY, WINRT_MANIFEST.capabilities): \ - MANIFEST_CAPABILITIES += " " - WINRT_MANIFEST.capabilities = $$join(MANIFEST_CAPABILITIES, $$INDENT, $$INDENT, $$INDENT) + !isEmpty(WINRT_MANIFEST.capabilities)|winphone { + MANIFEST_CAPABILITIES += "" + for(CAPABILITY, WINRT_MANIFEST.capabilities): \ + MANIFEST_CAPABILITIES += " " + MANIFEST_CAPABILITIES += "" + + WINRT_MANIFEST.capabilities = $$join(MANIFEST_CAPABILITIES, $$INDENT, $$INDENT) + } + # Dependencies are given as a string list. The CRT dependency is added automatically above. WINRT_MANIFEST.dependencies = $$unique(WINRT_MANIFEST.dependencies) - for(DEPENDENCY, WINRT_MANIFEST.dependencies): \ - MANIFEST_DEPENDENCIES += " " - WINRT_MANIFEST.dependencies = $$join(MANIFEST_DEPENDENCIES, $$INDENT, $$INDENT, $$INDENT) + !isEmpty(WINRT_MANIFEST.dependencies) { + MANIFEST_DEPENDENCIES += "" + for(DEPENDENCY, WINRT_MANIFEST.dependencies): \ + MANIFEST_DEPENDENCIES += " " + MANIFEST_DEPENDENCIES += "" + + WINRT_MANIFEST.dependencies = $$join(MANIFEST_DEPENDENCIES, $$INDENT, $$INDENT) + } # Provide default icons where needed isEmpty(WINRT_ASSETS_PATH): WINRT_ASSETS_PATH = $$[QT_HOST_DATA/get]/mkspecs/common/winrt_winphone/assets