From 306f1d0c528cb6c151594ff96a41b5c01a5c4d9b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 21 Jul 2018 07:36:34 -0700 Subject: Integrate tools from Core project --- src/WixToolset.BuildTasks/HeatFile.cs | 95 +++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/WixToolset.BuildTasks/HeatFile.cs (limited to 'src/WixToolset.BuildTasks/HeatFile.cs') diff --git a/src/WixToolset.BuildTasks/HeatFile.cs b/src/WixToolset.BuildTasks/HeatFile.cs new file mode 100644 index 00000000..69e11b88 --- /dev/null +++ b/src/WixToolset.BuildTasks/HeatFile.cs @@ -0,0 +1,95 @@ +// 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. + +namespace WixToolset.BuildTasks +{ + using Microsoft.Build.Framework; + + public sealed class HeatFile : HeatTask + { + private string file; + private bool suppressCom; + private bool suppressRegistry; + private bool suppressRootDirectory; + private string template; + private string componentGroupName; + private string directoryRefId; + private string preprocessorVariable; + + public string ComponentGroupName + { + get { return this.componentGroupName; } + set { this.componentGroupName = value; } + } + + public string DirectoryRefId + { + get { return this.directoryRefId; } + set { this.directoryRefId = value; } + } + + [Required] + public string File + { + get { return this.file; } + set { this.file = value; } + } + + public string PreprocessorVariable + { + get { return this.preprocessorVariable; } + set { this.preprocessorVariable = value; } + } + + public bool SuppressCom + { + get { return this.suppressCom; } + set { this.suppressCom = value; } + } + + public bool SuppressRegistry + { + get { return this.suppressRegistry; } + set { this.suppressRegistry = value; } + } + + public bool SuppressRootDirectory + { + get { return this.suppressRootDirectory; } + set { this.suppressRootDirectory = value; } + } + + public string Template + { + get { return this.template; } + set { this.template = value; } + } + + protected override string OperationName + { + get { return "file"; } + } + + /// + /// Generate the command line arguments to write to the response file from the properties. + /// + /// Command line string. + protected override string GenerateResponseFileCommands() + { + WixCommandLineBuilder commandLineBuilder = new WixCommandLineBuilder(); + + commandLineBuilder.AppendSwitch(this.OperationName); + commandLineBuilder.AppendFileNameIfNotNull(this.File); + + commandLineBuilder.AppendSwitchIfNotNull("-cg ", this.ComponentGroupName); + commandLineBuilder.AppendSwitchIfNotNull("-dr ", this.DirectoryRefId); + commandLineBuilder.AppendIfTrue("-scom", this.SuppressCom); + commandLineBuilder.AppendIfTrue("-srd", this.SuppressRootDirectory); + commandLineBuilder.AppendIfTrue("-sreg", this.SuppressRegistry); + commandLineBuilder.AppendSwitchIfNotNull("-template ", this.Template); + commandLineBuilder.AppendSwitchIfNotNull("-var ", this.PreprocessorVariable); + + base.BuildCommandLine(commandLineBuilder); + return commandLineBuilder.ToString(); + } + } +} -- cgit v1.2.3-55-g6feb