diff options
| author | Rob Mensching <rob@firegiant.com> | 2017-10-14 16:12:07 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2017-10-14 16:12:07 -0700 |
| commit | dbde9e7104b907bbbaea17e21247d8cafc8b3a4c (patch) | |
| tree | 0f5fbbb6fe12c6b2e5e622a0e18ce4c5b4eb2b96 /src/WixToolset.Core/CommandLine/CommandLine.cs | |
| parent | fbf986eb97f68396797a89fc7d40dec07b775440 (diff) | |
| download | wix-dbde9e7104b907bbbaea17e21247d8cafc8b3a4c.tar.gz wix-dbde9e7104b907bbbaea17e21247d8cafc8b3a4c.tar.bz2 wix-dbde9e7104b907bbbaea17e21247d8cafc8b3a4c.zip | |
Massive refactoring to introduce the concept of IBackend
Diffstat (limited to 'src/WixToolset.Core/CommandLine/CommandLine.cs')
| -rw-r--r-- | src/WixToolset.Core/CommandLine/CommandLine.cs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/WixToolset.Core/CommandLine/CommandLine.cs b/src/WixToolset.Core/CommandLine/CommandLine.cs index a3a6831c..2f203ecb 100644 --- a/src/WixToolset.Core/CommandLine/CommandLine.cs +++ b/src/WixToolset.Core/CommandLine/CommandLine.cs | |||
| @@ -6,6 +6,7 @@ namespace WixToolset.Core | |||
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.IO; | 7 | using System.IO; |
| 8 | using System.Linq; | 8 | using System.Linq; |
| 9 | using System.Reflection; | ||
| 9 | using System.Text; | 10 | using System.Text; |
| 10 | using System.Text.RegularExpressions; | 11 | using System.Text.RegularExpressions; |
| 11 | using WixToolset.Data; | 12 | using WixToolset.Data; |
| @@ -71,6 +72,7 @@ namespace WixToolset.Core | |||
| 71 | 72 | ||
| 72 | var intermediateFolder = String.Empty; | 73 | var intermediateFolder = String.Empty; |
| 73 | 74 | ||
| 75 | var cabCachePath = String.Empty; | ||
| 74 | var cultures = new List<string>(); | 76 | var cultures = new List<string>(); |
| 75 | var contentsFile = String.Empty; | 77 | var contentsFile = String.Empty; |
| 76 | var outputsFile = String.Empty; | 78 | var outputsFile = String.Empty; |
| @@ -98,6 +100,10 @@ namespace WixToolset.Core | |||
| 98 | cmdline.GetNextArgumentOrError(bindPaths); | 100 | cmdline.GetNextArgumentOrError(bindPaths); |
| 99 | return true; | 101 | return true; |
| 100 | 102 | ||
| 103 | case "cc": | ||
| 104 | cmdline.GetNextArgumentOrError(ref cabCachePath); | ||
| 105 | return true; | ||
| 106 | |||
| 101 | case "cultures": | 107 | case "cultures": |
| 102 | cmdline.GetNextArgumentOrError(cultures); | 108 | cmdline.GetNextArgumentOrError(cultures); |
| 103 | return true; | 109 | return true; |
| @@ -190,12 +196,14 @@ namespace WixToolset.Core | |||
| 190 | { | 196 | { |
| 191 | case Commands.Build: | 197 | case Commands.Build: |
| 192 | { | 198 | { |
| 199 | LoadStandardBackends(cli.ExtensionManager); | ||
| 200 | |||
| 193 | var sourceFiles = GatherSourceFiles(files, outputFolder); | 201 | var sourceFiles = GatherSourceFiles(files, outputFolder); |
| 194 | var variables = GatherPreprocessorVariables(defines); | 202 | var variables = GatherPreprocessorVariables(defines); |
| 195 | var bindPathList = GatherBindPaths(bindPaths); | 203 | var bindPathList = GatherBindPaths(bindPaths); |
| 196 | var extensions = cli.ExtensionManager; | 204 | var extensions = cli.ExtensionManager; |
| 197 | var type = CalculateOutputType(outputType, outputFile); | 205 | var type = CalculateOutputType(outputType, outputFile); |
| 198 | return new BuildCommand(extensions, sourceFiles, variables, locFiles, libraryFiles, outputFile, type, cultures, bindFiles, bindPathList, intermediateFolder, contentsFile, outputsFile, builtOutputsFile, wixProjectFile); | 206 | return new BuildCommand(extensions, sourceFiles, variables, locFiles, libraryFiles, outputFile, type, cabCachePath, cultures, bindFiles, bindPathList, intermediateFolder, contentsFile, outputsFile, builtOutputsFile, wixProjectFile); |
| 199 | } | 207 | } |
| 200 | 208 | ||
| 201 | case Commands.Compile: | 209 | case Commands.Compile: |
| @@ -209,6 +217,18 @@ namespace WixToolset.Core | |||
| 209 | return null; | 217 | return null; |
| 210 | } | 218 | } |
| 211 | 219 | ||
| 220 | private static void LoadStandardBackends(ExtensionManager extensionManager) | ||
| 221 | { | ||
| 222 | var folder = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath); | ||
| 223 | |||
| 224 | foreach (var backendAssemblyName in new[] { "WixToolset.Core.Burn.dll", "WixToolset.Core.WindowsInstaller.dll" }) | ||
| 225 | { | ||
| 226 | var path = Path.Combine(folder, backendAssemblyName); | ||
| 227 | |||
| 228 | extensionManager.Load(path); | ||
| 229 | } | ||
| 230 | } | ||
| 231 | |||
| 212 | private static OutputType CalculateOutputType(string outputType, string outputFile) | 232 | private static OutputType CalculateOutputType(string outputType, string outputFile) |
| 213 | { | 233 | { |
| 214 | if (String.IsNullOrEmpty(outputType)) | 234 | if (String.IsNullOrEmpty(outputType)) |
