From af43f098d7d7cc0fe21c7d7b0fe991763e9cae07 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 10 Jul 2020 18:01:40 +1000 Subject: Add x64 and ARM64 versions of UtilBundleExtension. --- global.json | 2 +- src/be/UtilBundleExtension.h | 2 +- src/be/beDecor.h | 13 +++++++++++ src/be/precomp.h | 1 + src/be/utilbe.vcxproj | 25 ++++++++++++++++++++++ .../WixToolsetTest.Util/UtilExtensionFixture.cs | 8 +++---- src/wixext/UtilCompiler.cs | 13 +++++++---- src/wixext/UtilConstants.cs | 2 -- src/wixlib/UtilBundleExtension_Platform.wxi | 10 +++++++++ src/wixlib/UtilBundleExtension_arm64.wxs | 7 ++++++ src/wixlib/UtilBundleExtension_x64.wxs | 7 ++++++ src/wixlib/UtilBundleExtension_x86.wxs | 7 ++++++ src/wixlib/util.wixproj | 4 +++- 13 files changed, 88 insertions(+), 13 deletions(-) create mode 100644 src/be/beDecor.h create mode 100644 src/wixlib/UtilBundleExtension_Platform.wxi create mode 100644 src/wixlib/UtilBundleExtension_arm64.wxs create mode 100644 src/wixlib/UtilBundleExtension_x64.wxs create mode 100644 src/wixlib/UtilBundleExtension_x86.wxs diff --git a/global.json b/global.json index 7a995d0a..32c1b11f 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "msbuild-sdks": { - "WixToolset.Sdk": "4.0.0-build-0143" + "WixToolset.Sdk": "4.0.0-build-0145" } } diff --git a/src/be/UtilBundleExtension.h b/src/be/UtilBundleExtension.h index 16c5b346..c55d6b85 100644 --- a/src/be/UtilBundleExtension.h +++ b/src/be/UtilBundleExtension.h @@ -4,7 +4,7 @@ // constants -#define UTIL_BUNDLE_EXTENSION_ID L"WixUtilBundleExtension" +#define UTIL_BUNDLE_EXTENSION_ID BUNDLE_EXTENSION_DECORATION(L"UtilBundleExtension") // function declarations diff --git a/src/be/beDecor.h b/src/be/beDecor.h new file mode 100644 index 00000000..2c6a8818 --- /dev/null +++ b/src/be/beDecor.h @@ -0,0 +1,13 @@ +#pragma once +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + + +#if defined(_M_ARM64) +#define BUNDLE_EXTENSION_DECORATION(f) L"Wix4" f L"_A64" +#elif defined(_M_AMD64) +#define BUNDLE_EXTENSION_DECORATION(f) L"Wix4" f L"_X64" +#elif defined(_M_ARM) +#define BUNDLE_EXTENSION_DECORATION(f) L"Wix4" f L"_ARM" +#else +#define BUNDLE_EXTENSION_DECORATION(f) L"Wix4" f L"_X86" +#endif diff --git a/src/be/precomp.h b/src/be/precomp.h index a4ab7abf..76d24c7b 100644 --- a/src/be/precomp.h +++ b/src/be/precomp.h @@ -31,6 +31,7 @@ #include #include +#include "beDecor.h" #include "utilsearch.h" #include "detectsha2support.h" #include "UtilBundleExtension.h" diff --git a/src/be/utilbe.vcxproj b/src/be/utilbe.vcxproj index b60fcf9f..3675ccc0 100644 --- a/src/be/utilbe.vcxproj +++ b/src/be/utilbe.vcxproj @@ -8,6 +8,30 @@ + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + Debug + X64 + + + Release + X64 + Debug Win32 @@ -41,6 +65,7 @@ + diff --git a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs index 9c83209b..aa03d068 100644 --- a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs @@ -85,7 +85,7 @@ namespace WixToolsetTest.Util "CustomAction:Wix4CreateInternetShortcuts_X64\t3073\tWix4UtilCA_X64\tWixCreateInternetShortcuts\t", "CustomAction:Wix4RollbackInternetShortcuts_X64\t3329\tWix4UtilCA_X64\tWixRollbackInternetShortcuts\t", "CustomAction:Wix4SchedInternetShortcuts_X64\t1\tWix4UtilCA_X64\tWixSchedInternetShortcuts\t", - "RemoveFile:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tvtpzs3bw.lnk|WiX Toolset.lnk\tINSTALLFOLDER\t2", + "RemoveFile:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tzf9nskwi.lnk|WiX Toolset.lnk\tINSTALLFOLDER\t2", "Wix4InternetShortcut:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tINSTALLFOLDER\tWiX Toolset.lnk\thttps://wixtoolset.org\t0\t\t0", }, results.OrderBy(s => s).ToArray()); } @@ -169,16 +169,16 @@ namespace WixToolsetTest.Util var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); extractResult.AssertSuccess(); - var bundleExtensionDatas = extractResult.SelectBundleExtensionDataNodes("/be:BundleExtensionData/be:BundleExtension[@Id='WixUtilBundleExtension']"); + var bundleExtensionDatas = extractResult.SelectBundleExtensionDataNodes("/be:BundleExtensionData/be:BundleExtension[@Id='Wix4UtilBundleExtension_X86']"); Assert.Equal(1, bundleExtensionDatas.Count); - Assert.Equal("" + + Assert.Equal("" + "" + "", bundleExtensionDatas[0].GetTestXml()); var utilSearches = extractResult.SelectManifestNodes("/burn:BurnManifest/*[self::burn:ExtensionSearch or self::burn:FileSearch or self::burn:MsiProductSearch or self::burn:RegistrySearch]"); Assert.Equal(4, utilSearches.Count); Assert.Equal("", utilSearches[0].GetTestXml()); + "ExtensionId='Wix4UtilBundleExtension_X86' />", utilSearches[0].GetTestXml()); Assert.Equal("", utilSearches[1].GetTestXml()); Assert.Equal(" + + + + + + + + + diff --git a/src/wixlib/UtilBundleExtension_arm64.wxs b/src/wixlib/UtilBundleExtension_arm64.wxs new file mode 100644 index 00000000..b17be031 --- /dev/null +++ b/src/wixlib/UtilBundleExtension_arm64.wxs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/wixlib/UtilBundleExtension_x64.wxs b/src/wixlib/UtilBundleExtension_x64.wxs new file mode 100644 index 00000000..96c85a5b --- /dev/null +++ b/src/wixlib/UtilBundleExtension_x64.wxs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/wixlib/UtilBundleExtension_x86.wxs b/src/wixlib/UtilBundleExtension_x86.wxs new file mode 100644 index 00000000..3b458687 --- /dev/null +++ b/src/wixlib/UtilBundleExtension_x86.wxs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/wixlib/util.wixproj b/src/wixlib/util.wixproj index a4d7d16f..21fcdb7b 100644 --- a/src/wixlib/util.wixproj +++ b/src/wixlib/util.wixproj @@ -14,7 +14,9 @@ - + + + -- cgit v1.2.3-55-g6feb