aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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}