aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-05-17 17:30:46 -0400
committerBob Arnson <bob@firegiant.com>2020-05-17 17:38:40 -0400
commitdf8cf532fb8f77947664b95901122b8b47fe562b (patch)
treee88c8e836c8f215fa2bd67760a2c0ab91e12aff8 /src
parentad9cdd7dc6faee762e06a8d3446fa68c74dd802d (diff)
downloadwix-df8cf532fb8f77947664b95901122b8b47fe562b.tar.gz
wix-df8cf532fb8f77947664b95901122b8b47fe562b.tar.bz2
wix-df8cf532fb8f77947664b95901122b8b47fe562b.zip
Add missing ARM64 cases & random fixes.
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Unbind/ExtractCabinetsCommand.cs2
-rw-r--r--src/WixToolset.Core/Compiler.cs18
-rw-r--r--src/WixToolset.Core/Compiler_2.cs45
-rw-r--r--src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs3
4 files changed, 45 insertions, 23 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Unbind/ExtractCabinetsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Unbind/ExtractCabinetsCommand.cs
index 6840b2d4..f63835b8 100644
--- a/src/WixToolset.Core.WindowsInstaller/Unbind/ExtractCabinetsCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Unbind/ExtractCabinetsCommand.cs
@@ -90,7 +90,7 @@ namespace WixToolset.Core.WindowsInstaller.Unbind
90 { 90 {
91 if (null != record) 91 if (null != record)
92 { 92 {
93 // since the cabinets are stored in case-sensitive streams inside the msi, but the file system is not case-sensitive, 93 // since the cabinets are stored in case-sensitive streams inside the msi, but the file system is not (typically) case-sensitive,
94 // embedded cabinets must be extracted to a canonical file name (like their diskid) to ensure extraction will always work 94 // embedded cabinets must be extracted to a canonical file name (like their diskid) to ensure extraction will always work
95 var cabinetFile = Path.Combine(this.IntermediateFolder, String.Concat("Media", Path.DirectorySeparatorChar, diskId.ToString(CultureInfo.InvariantCulture), ".cab")); 95 var cabinetFile = Path.Combine(this.IntermediateFolder, String.Concat("Media", Path.DirectorySeparatorChar, diskId.ToString(CultureInfo.InvariantCulture), ".cab"));
96 96
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs
index d4ad3279..32e9b9d6 100644
--- a/src/WixToolset.Core/Compiler.cs
+++ b/src/WixToolset.Core/Compiler.cs
@@ -79,6 +79,12 @@ namespace WixToolset.Core
79 public Platform CurrentPlatform => this.Context.Platform; 79 public Platform CurrentPlatform => this.Context.Platform;
80 80
81 /// <summary> 81 /// <summary>
82 /// Gets or sets the platform which the compiler will use when defaulting 64-bit attributes and elements.
83 /// </summary>
84 /// <value>The platform which the compiler will use when defaulting 64-bit attributes and elements.</value>
85 public bool IsCurrentPlatform64Bit => this.Context.Platform == Platform.ARM64 || this.Context.Platform == Platform.IA64 || this.Context.Platform == Platform.X64;
86
87 /// <summary>
82 /// Gets or sets the option to show pedantic messages. 88 /// Gets or sets the option to show pedantic messages.
83 /// </summary> 89 /// </summary>
84 /// <value>The option to show pedantic messages.</value> 90 /// <value>The option to show pedantic messages.</value>
@@ -1777,7 +1783,7 @@ namespace WixToolset.Core
1777 } 1783 }
1778 } 1784 }
1779 1785
1780 if (!explicitWin64 && (Platform.IA64 == this.CurrentPlatform || Platform.X64 == this.CurrentPlatform)) 1786 if (!explicitWin64 && this.IsCurrentPlatform64Bit)
1781 { 1787 {
1782 search64bit = true; 1788 search64bit = true;
1783 } 1789 }
@@ -2250,7 +2256,7 @@ namespace WixToolset.Core
2250 } 2256 }
2251 } 2257 }
2252 2258
2253 if (!explicitWin64 && (Platform.IA64 == this.CurrentPlatform || Platform.X64 == this.CurrentPlatform)) 2259 if (!explicitWin64 && this.IsCurrentPlatform64Bit)
2254 { 2260 {
2255 //bits |= MsiInterop.MsidbComponentAttributes64bit; 2261 //bits |= MsiInterop.MsidbComponentAttributes64bit;
2256 win64 = true; 2262 win64 = true;
@@ -3405,7 +3411,7 @@ namespace WixToolset.Core
3405 id = Identifier.Invalid; 3411 id = Identifier.Invalid;
3406 } 3412 }
3407 3413
3408 if (!explicitWin64 && (CustomActionTargetType.VBScript == targetType || CustomActionTargetType.JScript == targetType) && (Platform.IA64 == this.CurrentPlatform || Platform.X64 == this.CurrentPlatform)) 3414 if (!explicitWin64 && this.IsCurrentPlatform64Bit && (CustomActionTargetType.VBScript == targetType || CustomActionTargetType.JScript == targetType))
3409 { 3415 {
3410 win64 = true; 3416 win64 = true;
3411 } 3417 }
@@ -5510,6 +5516,12 @@ namespace WixToolset.Core
5510 case "ia64": 5516 case "ia64":
5511 procArch = "ia64"; 5517 procArch = "ia64";
5512 break; 5518 break;
5519 case "arm":
5520 procArch = "arm";
5521 break;
5522 case "arm64":
5523 procArch = "arm64";
5524 break;
5513 case "": 5525 case "":
5514 break; 5526 break;
5515 default: 5527 default:
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs
index 85fb9e4c..c5f3fb6f 100644
--- a/src/WixToolset.Core/Compiler_2.cs
+++ b/src/WixToolset.Core/Compiler_2.cs
@@ -632,23 +632,27 @@ namespace WixToolset.Core
632 632
633 switch (this.CurrentPlatform) 633 switch (this.CurrentPlatform)
634 { 634 {
635 case Platform.X86: 635 case Platform.X86:
636 platform = "Intel"; 636 platform = "Intel";
637 break; 637 break;
638 case Platform.X64: 638 case Platform.X64:
639 platform = "x64"; 639 platform = "x64";
640 msiVersion = 200; 640 msiVersion = 200;
641 break; 641 break;
642 case Platform.IA64: 642 case Platform.IA64:
643 platform = "Intel64"; 643 platform = "Intel64";
644 msiVersion = 200; 644 msiVersion = 200;
645 break; 645 break;
646 case Platform.ARM: 646 case Platform.ARM:
647 platform = "Arm"; 647 platform = "Arm";
648 msiVersion = 500; 648 msiVersion = 500;
649 break; 649 break;
650 default: 650 case Platform.ARM64:
651 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", this.CurrentPlatform.ToString()); 651 platform = "Arm64";
652 msiVersion = 500;
653 break;
654 default:
655 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", this.CurrentPlatform.ToString());
652 } 656 }
653 657
654 foreach (var attrib in node.Attributes()) 658 foreach (var attrib in node.Attributes())
@@ -768,6 +772,9 @@ namespace WixToolset.Core
768 case "arm": 772 case "arm":
769 platform = "Arm"; 773 platform = "Arm";
770 break; 774 break;
775 case "arm64":
776 platform = "Arm64";
777 break;
771 case "": 778 case "":
772 break; 779 break;
773 default: 780 default:
@@ -813,13 +820,13 @@ namespace WixToolset.Core
813 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "InstallPrivileges", "InstallScope")); 820 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "InstallPrivileges", "InstallScope"));
814 } 821 }
815 822
816 if ((0 != String.Compare(platform, "Intel", StringComparison.OrdinalIgnoreCase)) && 200 > msiVersion) 823 if ((String.Equals(platform, "X64", StringComparison.OrdinalIgnoreCase) || String.Equals(platform, "Intel64", StringComparison.OrdinalIgnoreCase)) && 200 > msiVersion)
817 { 824 {
818 msiVersion = 200; 825 msiVersion = 200;
819 this.Core.Write(WarningMessages.RequiresMsi200for64bitPackage(sourceLineNumbers)); 826 this.Core.Write(WarningMessages.RequiresMsi200for64bitPackage(sourceLineNumbers));
820 } 827 }
821 828
822 if ((0 == String.Compare(platform, "Arm", StringComparison.OrdinalIgnoreCase)) && 500 > msiVersion) 829 if ((String.Equals(platform, "Arm", StringComparison.OrdinalIgnoreCase) || String.Equals(platform, "Arm64", StringComparison.OrdinalIgnoreCase)) && 500 > msiVersion)
823 { 830 {
824 msiVersion = 500; 831 msiVersion = 500;
825 this.Core.Write(WarningMessages.RequiresMsi500forArmPackage(sourceLineNumbers)); 832 this.Core.Write(WarningMessages.RequiresMsi500forArmPackage(sourceLineNumbers));
diff --git a/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs b/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
index bdf11879..e84bb001 100644
--- a/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
+++ b/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
@@ -244,6 +244,9 @@ namespace WixToolset.Core.ExtensibilityServices
244 case Platform.ARM: 244 case Platform.ARM:
245 return "arm"; 245 return "arm";
246 246
247 case Platform.ARM64:
248 return "arm64";
249
247 default: 250 default:
248 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", context.Platform.ToString()); 251 throw new ArgumentException("Unknown platform enumeration '{0}' encountered.", context.Platform.ToString());
249 } 252 }