@joebigelow / wix-1 / commits / 4d5289fa

Pass extensions' data into the linker

Rob Mensching committed Oct 4, 2017 at 14:52 UTC 4d5289fa6254ca80a23807c41ca8502f8f38f048
2 files changed +10 -2
src/WixToolset.Core/CommandLine/BuildCommand.cs
+9 -1
@@ -11,8 +11,9 @@ namespace WixToolset.Core
11
12 internal class BuildCommand : ICommand
13 {
14 - public BuildCommand(IEnumerable<SourceFile> sources, IDictionary<string, string> preprocessorVariables, IEnumerable<string> locFiles, IEnumerable<string> libraryFiles, string outputPath, OutputType outputType, IEnumerable<string> cultures, bool bindFiles, IEnumerable<BindPath> bindPaths, string intermediateFolder, string contentsFile, string outputsFile, string builtOutputsFile, string wixProjectFile)
14 + public BuildCommand(ExtensionManager extensions, IEnumerable<SourceFile> sources, IDictionary<string, string> preprocessorVariables, IEnumerable<string> locFiles, IEnumerable<string> libraryFiles, string outputPath, OutputType outputType, IEnumerable<string> cultures, bool bindFiles, IEnumerable<BindPath> bindPaths, string intermediateFolder, string contentsFile, string outputsFile, string builtOutputsFile, string wixProjectFile)
15 {
16 + this.Extensions = extensions;
17 this.LocFiles = locFiles;
18 this.LibraryFiles = libraryFiles;
19 this.PreprocessorVariables = preprocessorVariables;
@@ -31,6 +32,8 @@ namespace WixToolset.Core
32 this.WixProjectFile = wixProjectFile;
33 }
34
35 + public ExtensionManager Extensions { get; }
36 +
37 public IEnumerable<string> LocFiles { get; }
38
39 public IEnumerable<string> LibraryFiles { get; }
@@ -146,6 +149,11 @@ namespace WixToolset.Core
149
150 var linker = new Linker();
151
152 + foreach (var data in this.Extensions.Create<IExtensionData>())
153 + {
154 + linker.AddExtensionData(data);
155 + }
156 +
157 var output = linker.Link(sections, this.OutputType);
158
159 return output;
src/WixToolset.Core/CommandLine/CommandLine.cs
+1 -1
@@ -195,7 +195,7 @@ namespace WixToolset.Core
195 var bindPathList = GatherBindPaths(bindPaths);
196 var extensions = cli.ExtensionManager;
197 var type = CalculateOutputType(outputType, outputFile);
198 - return new BuildCommand(sourceFiles, variables, locFiles, libraryFiles, outputFile, type, cultures, bindFiles, bindPathList, intermediateFolder, contentsFile, outputsFile, builtOutputsFile, wixProjectFile);
198 + return new BuildCommand(extensions, sourceFiles, variables, locFiles, libraryFiles, outputFile, type, cultures, bindFiles, bindPathList, intermediateFolder, contentsFile, outputsFile, builtOutputsFile, wixProjectFile);
199 }
200
201 case Commands.Compile: