aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-03-15 14:03:38 -0700
committerRob Mensching <rob@firegiant.com>2022-03-15 15:51:57 -0700
commit7558404a7e853aa98344e52ecffd2bf92d0b0afd (patch)
tree31116162a888492351f09c4984c96322ab5708f6
parent9aa2910e79ce52144c5296077aa2444876419643 (diff)
downloadwix-7558404a7e853aa98344e52ecffd2bf92d0b0afd.tar.gz
wix-7558404a7e853aa98344e52ecffd2bf92d0b0afd.tar.bz2
wix-7558404a7e853aa98344e52ecffd2bf92d0b0afd.zip
Removal of dead scenarios/code
The only reason to have "compile" command was to allow different compilation used to build the same code that would be included in the final output. This scenario is now supported by combining multiple compiles into .wixlibs and, optionally, including those .wixlibs into a single .wixlib.
-rw-r--r--src/wix/WixToolset.Core/CommandLine/CommandLine.cs7
-rw-r--r--src/wix/WixToolset.Core/CommandLine/CompileCommand.cs99
-rw-r--r--src/wix/WixToolset.Core/SourceFile.cs17
3 files changed, 0 insertions, 123 deletions
diff --git a/src/wix/WixToolset.Core/CommandLine/CommandLine.cs b/src/wix/WixToolset.Core/CommandLine/CommandLine.cs
index 8913828b..cd3b2fe4 100644
--- a/src/wix/WixToolset.Core/CommandLine/CommandLine.cs
+++ b/src/wix/WixToolset.Core/CommandLine/CommandLine.cs
@@ -14,9 +14,6 @@ namespace WixToolset.Core.CommandLine
14 Unknown, 14 Unknown,
15 Build, 15 Build,
16 Preprocess, 16 Preprocess,
17 Compile,
18 Link,
19 Bind,
20 Decompile, 17 Decompile,
21 } 18 }
22 19
@@ -165,10 +162,6 @@ namespace WixToolset.Core.CommandLine
165 command = new BuildCommand(this.ServiceProvider); 162 command = new BuildCommand(this.ServiceProvider);
166 break; 163 break;
167 164
168 case CommandTypes.Compile:
169 command = new CompileCommand(this.ServiceProvider);
170 break;
171
172 case CommandTypes.Decompile: 165 case CommandTypes.Decompile:
173 command = new DecompileCommand(this.ServiceProvider); 166 command = new DecompileCommand(this.ServiceProvider);
174 break; 167 break;
diff --git a/src/wix/WixToolset.Core/CommandLine/CompileCommand.cs b/src/wix/WixToolset.Core/CommandLine/CompileCommand.cs
deleted file mode 100644
index 73e5bcbe..00000000
--- a/src/wix/WixToolset.Core/CommandLine/CompileCommand.cs
+++ /dev/null
@@ -1,99 +0,0 @@
1// 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.
2
3namespace WixToolset.Core.CommandLine
4{
5 using System;
6 using System.Collections.Generic;
7 using System.Threading;
8 using System.Threading.Tasks;
9 using WixToolset.Data;
10 using WixToolset.Extensibility;
11 using WixToolset.Extensibility.Data;
12 using WixToolset.Extensibility.Services;
13
14 internal class CompileCommand : ICommandLineCommand
15 {
16 public CompileCommand(IServiceProvider serviceProvider)
17 {
18 this.ServiceProvider = serviceProvider;
19 this.Messaging = serviceProvider.GetService<IMessaging>();
20 this.ExtensionManager = serviceProvider.GetService<IExtensionManager>();
21 }
22
23 public CompileCommand(IServiceProvider serviceProvider, IEnumerable<SourceFile> sources, IDictionary<string, string> preprocessorVariables, Platform platform)
24 {
25 this.ServiceProvider = serviceProvider;
26 this.Messaging = serviceProvider.GetService<IMessaging>();
27 this.ExtensionManager = serviceProvider.GetService<IExtensionManager>();
28 this.SourceFiles = sources;
29 this.PreprocessorVariables = preprocessorVariables;
30 this.Platform = platform;
31 }
32
33 public bool ShowHelp { get; set; }
34
35 public bool ShowLogo { get; set; }
36
37 public bool StopParsing { get; }
38
39 private IServiceProvider ServiceProvider { get; }
40
41 private IMessaging Messaging { get; }
42
43 private IExtensionManager ExtensionManager { get; }
44
45 private IEnumerable<SourceFile> SourceFiles { get; }
46
47 private IDictionary<string, string> PreprocessorVariables { get; }
48
49 private Platform Platform { get; }
50
51 public IReadOnlyCollection<string> IncludeSearchPaths { get; }
52
53 public bool TryParseArgument(ICommandLineParser parseHelper, string argument)
54 {
55 throw new NotImplementedException();
56 }
57
58 public Task<int> ExecuteAsync(CancellationToken _)
59 {
60 foreach (var sourceFile in this.SourceFiles)
61 {
62 var context = this.ServiceProvider.GetService<IPreprocessContext>();
63 context.Extensions = this.ExtensionManager.GetServices<IPreprocessorExtension>();
64 context.Platform = this.Platform;
65 context.IncludeSearchPaths = this.IncludeSearchPaths;
66 context.SourcePath = sourceFile.SourcePath;
67 context.Variables = this.PreprocessorVariables;
68
69 IPreprocessResult result = null;
70 try
71 {
72 var preprocessor = this.ServiceProvider.GetService<IPreprocessor>();
73 result = preprocessor.Preprocess(context);
74 }
75 catch (WixException e)
76 {
77 this.Messaging.Write(e.Error);
78 }
79
80 if (this.Messaging.EncounteredError)
81 {
82 continue;
83 }
84
85 var compileContext = this.ServiceProvider.GetService<ICompileContext>();
86 compileContext.Extensions = this.ExtensionManager.GetServices<ICompilerExtension>();
87 compileContext.Platform = this.Platform;
88 compileContext.Source = result?.Document;
89
90 var compiler = this.ServiceProvider.GetService<ICompiler>();
91 var intermediate = compiler.Compile(compileContext);
92
93 intermediate.Save(sourceFile.OutputPath);
94 }
95
96 return Task.FromResult(0);
97 }
98 }
99}
diff --git a/src/wix/WixToolset.Core/SourceFile.cs b/src/wix/WixToolset.Core/SourceFile.cs
deleted file mode 100644
index d7ea7a50..00000000
--- a/src/wix/WixToolset.Core/SourceFile.cs
+++ /dev/null
@@ -1,17 +0,0 @@
1// 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.
2
3namespace WixToolset.Core
4{
5 internal class SourceFile
6 {
7 public SourceFile(string sourcePath, string outputPath)
8 {
9 this.SourcePath = sourcePath;
10 this.OutputPath = outputPath;
11 }
12
13 public string OutputPath { get; }
14
15 public string SourcePath { get; }
16 }
17}