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: