? wix.patch
Index: src/NAntTasks/CandleTask.cs
===================================================================
RCS file: /cvsroot/wix/wix/src/NAntTasks/CandleTask.cs,v
retrieving revision 1.4
diff -u -p -r1.4 CandleTask.cs
--- src/NAntTasks/CandleTask.cs	10 Aug 2007 09:58:38 -0000	1.4
+++ src/NAntTasks/CandleTask.cs	16 Feb 2009 09:58:33 -0000
@@ -43,6 +43,7 @@ namespace Microsoft.Tools.WindowsInstall
         private OptionCollection defines = new OptionCollection();
         private FileSet includeDirs = new FileSet();
         private string outputPath;
+        private string targetArchitecture;
         private StringCollection outOfDateSources = new StringCollection();
         #endregion
 
@@ -93,6 +94,17 @@ namespace Microsoft.Tools.WindowsInstall
             get { return this.outputPath; }
             set { this.outputPath = value; }
         }
+
+        /// <summary>
+        /// Gets or sets the target architecture (-arch). Allowed values are: x86, intel, x64, intel64 or ia64 (default: x86).
+        /// </summary>
+        [StringValidator(AllowEmpty = true, Expression = "^(x86|intel|x64|intel64|ia64)$", ExpressionErrorMessage = "An invalid target architecture was specified.")]
+        [TaskAttribute("arch")]
+        public string TargetArchitecture
+        {
+            get { return this.targetArchitecture; }
+            set { this.targetArchitecture = value; }
+        }
         #endregion
  
         #region Methods
@@ -141,6 +153,10 @@ namespace Microsoft.Tools.WindowsInstall
             // Write the -out parameter
             writer.WriteLine("-out " + Utility.QuotePathIfNeeded(this.OutputPath));
 
+            // Write the -arch parameter
+            if (!string.IsNullOrEmpty(this.TargetArchitecture))
+                writer.WriteLine("-arch " + this.TargetArchitecture);
+
             // Write out the include directories
             foreach (string directoryName in this.IncludeDirs.DirectoryNames)
             {
