aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-03-17 21:16:55 -0400
committerBob Arnson <bob@firegiant.com>2020-03-17 21:24:05 -0400
commitf1ddeb81aa8c709582fc11a5711b39da596f4f22 (patch)
tree1967def37a2f78789150c1c128315f15e50e7c4c /src
parentd097c7deb98803f6e9e46fe20261dd761efeb993 (diff)
downloadwix-f1ddeb81aa8c709582fc11a5711b39da596f4f22.tar.gz
wix-f1ddeb81aa8c709582fc11a5711b39da596f4f22.tar.bz2
wix-f1ddeb81aa8c709582fc11a5711b39da596f4f22.zip
Partial WixPdbs stop the backend before binding.
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs2
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs10
-rw-r--r--src/WixToolset.Core/BindContext.cs4
-rw-r--r--src/WixToolset.Core/Binder.cs2
-rw-r--r--src/WixToolset.Core/CommandLine/BuildCommand.cs32
5 files changed, 41 insertions, 9 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
index 283cd115..da655469 100644
--- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
+++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
@@ -38,7 +38,7 @@ namespace WixToolset.Core.Burn
38 this.IntermediateFolder = context.IntermediateFolder; 38 this.IntermediateFolder = context.IntermediateFolder;
39 this.Output = context.IntermediateRepresentation; 39 this.Output = context.IntermediateRepresentation;
40 this.OutputPath = context.OutputPath; 40 this.OutputPath = context.OutputPath;
41 this.OutputPdbPath = context.OutputPdbPath; 41 this.OutputPdbPath = context.PdbPath;
42 //this.VariableResolver = context.VariableResolver; 42 //this.VariableResolver = context.VariableResolver;
43 43
44 this.BackendExtensions = backedExtensions; 44 this.BackendExtensions = backedExtensions;
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
index 67985df6..7412e6da 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
@@ -45,7 +45,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
45 this.FileSystemExtensions = context.FileSystemExtensions; 45 this.FileSystemExtensions = context.FileSystemExtensions;
46 this.Intermediate = context.IntermediateRepresentation; 46 this.Intermediate = context.IntermediateRepresentation;
47 this.OutputPath = context.OutputPath; 47 this.OutputPath = context.OutputPath;
48 this.OutputPdbPath = context.OutputPdbPath; 48 this.OutputPdbPath = context.PdbPath;
49 this.PdbType = context.PdbType;
49 this.IntermediateFolder = context.IntermediateFolder; 50 this.IntermediateFolder = context.IntermediateFolder;
50 this.SubStorages = subStorages; 51 this.SubStorages = subStorages;
51 this.Validator = validator; 52 this.Validator = validator;
@@ -85,6 +86,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
85 86
86 private string OutputPath { get; } 87 private string OutputPath { get; }
87 88
89 public PdbType PdbType { get; set; }
90
88 private string OutputPdbPath { get; } 91 private string OutputPdbPath { get; }
89 92
90 private bool SuppressAddingValidationRows { get; } 93 private bool SuppressAddingValidationRows { get; }
@@ -213,11 +216,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
213 return null; 216 return null;
214 } 217 }
215 218
216 // Call extension
217 var ExtensionSaidSkip = false;
218
219 WindowsInstallerData output; 219 WindowsInstallerData output;
220 if (ExtensionSaidSkip) 220 if (this.PdbType == PdbType.Partial)
221 { 221 {
222 // Time to create the output object, since we're bypassing everything that touches files. 222 // Time to create the output object, since we're bypassing everything that touches files.
223 var command = new CreateOutputFromIRCommand(this.Messaging, section, tableDefinitions, this.BackendExtensions); 223 var command = new CreateOutputFromIRCommand(this.Messaging, section, tableDefinitions, this.BackendExtensions);
diff --git a/src/WixToolset.Core/BindContext.cs b/src/WixToolset.Core/BindContext.cs
index 7882b22d..67ce744a 100644
--- a/src/WixToolset.Core/BindContext.cs
+++ b/src/WixToolset.Core/BindContext.cs
@@ -45,7 +45,9 @@ namespace WixToolset.Core
45 45
46 public string OutputPath { get; set; } 46 public string OutputPath { get; set; }
47 47
48 public string OutputPdbPath { get; set; } 48 public PdbType PdbType { get; set; }
49
50 public string PdbPath { get; set; }
49 51
50 public IEnumerable<string> SuppressIces { get; set; } 52 public IEnumerable<string> SuppressIces { get; set; }
51 53
diff --git a/src/WixToolset.Core/Binder.cs b/src/WixToolset.Core/Binder.cs
index 29fad7f0..fcf5a669 100644
--- a/src/WixToolset.Core/Binder.cs
+++ b/src/WixToolset.Core/Binder.cs
@@ -35,7 +35,7 @@ namespace WixToolset.Core
35 35
36 // Bind. 36 // Bind.
37 // 37 //
38 this.WriteBuildInfoTuple(context.IntermediateRepresentation, context.OutputPath, context.OutputPdbPath); 38 this.WriteBuildInfoTuple(context.IntermediateRepresentation, context.OutputPath, context.PdbPath);
39 39
40 var bindResult = this.BackendBind(context); 40 var bindResult = this.BackendBind(context);
41 41
diff --git a/src/WixToolset.Core/CommandLine/BuildCommand.cs b/src/WixToolset.Core/CommandLine/BuildCommand.cs
index a55fb55b..718b3015 100644
--- a/src/WixToolset.Core/CommandLine/BuildCommand.cs
+++ b/src/WixToolset.Core/CommandLine/BuildCommand.cs
@@ -40,6 +40,10 @@ namespace WixToolset.Core.CommandLine
40 40
41 private List<string> IncludeSearchPaths { get; set; } 41 private List<string> IncludeSearchPaths { get; set; }
42 42
43 public string PdbFile { get; set; }
44
45 public PdbType PdbType { get; set; }
46
43 private Platform Platform { get; set; } 47 private Platform Platform { get; set; }
44 48
45 private string OutputFile { get; set; } 49 private string OutputFile { get; set; }
@@ -64,6 +68,10 @@ namespace WixToolset.Core.CommandLine
64 68
65 this.IncludeSearchPaths = this.commandLine.IncludeSearchPaths; 69 this.IncludeSearchPaths = this.commandLine.IncludeSearchPaths;
66 70
71 this.PdbFile = this.commandLine.PdbFile;
72
73 this.PdbType = this.commandLine.PdbType;
74
67 this.Platform = this.commandLine.Platform; 75 this.Platform = this.commandLine.Platform;
68 76
69 this.OutputFile = this.commandLine.OutputFile; 77 this.OutputFile = this.commandLine.OutputFile;
@@ -311,7 +319,8 @@ namespace WixToolset.Core.CommandLine
311 context.IntermediateFolder = intermediateFolder; 319 context.IntermediateFolder = intermediateFolder;
312 context.IntermediateRepresentation = resolveResult.IntermediateRepresentation; 320 context.IntermediateRepresentation = resolveResult.IntermediateRepresentation;
313 context.OutputPath = this.OutputFile; 321 context.OutputPath = this.OutputFile;
314 context.OutputPdbPath = Path.ChangeExtension(this.OutputFile, ".wixpdb"); 322 context.PdbType = this.PdbType;
323 context.PdbPath = this.PdbType == PdbType.None ? null : this.PdbFile ?? Path.ChangeExtension(this.OutputFile, ".wixpdb");
315 context.SuppressIces = Array.Empty<string>(); // TODO: set this correctly 324 context.SuppressIces = Array.Empty<string>(); // TODO: set this correctly
316 context.SuppressValidation = true; // TODO: set this correctly 325 context.SuppressValidation = true; // TODO: set this correctly
317 326
@@ -433,6 +442,10 @@ namespace WixToolset.Core.CommandLine
433 442
434 public Platform Platform { get; private set; } 443 public Platform Platform { get; private set; }
435 444
445 public string PdbFile { get; private set; }
446
447 public PdbType PdbType { get; private set; }
448
436 public bool ShowLogo { get; private set; } 449 public bool ShowLogo { get; private set; }
437 450
438 public bool ShowHelp { get; private set; } 451 public bool ShowHelp { get; private set; }
@@ -514,9 +527,11 @@ namespace WixToolset.Core.CommandLine
514 case "contentsfile": 527 case "contentsfile":
515 this.ContentsFile = parser.GetNextArgumentAsFilePathOrError(arg); 528 this.ContentsFile = parser.GetNextArgumentAsFilePathOrError(arg);
516 return true; 529 return true;
530
517 case "outputsfile": 531 case "outputsfile":
518 this.OutputsFile = parser.GetNextArgumentAsFilePathOrError(arg); 532 this.OutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
519 return true; 533 return true;
534
520 case "builtoutputsfile": 535 case "builtoutputsfile":
521 this.BuiltOutputsFile = parser.GetNextArgumentAsFilePathOrError(arg); 536 this.BuiltOutputsFile = parser.GetNextArgumentAsFilePathOrError(arg);
522 return true; 537 return true;
@@ -552,6 +567,21 @@ namespace WixToolset.Core.CommandLine
552 this.OutputType = parser.GetNextArgumentOrError(arg); 567 this.OutputType = parser.GetNextArgumentOrError(arg);
553 return true; 568 return true;
554 569
570 case "pdb":
571 this.PdbFile = parser.GetNextArgumentAsFilePathOrError(arg);
572 return true;
573
574 case "pdbtype":
575 {
576 var value = parser.GetNextArgumentOrError(arg);
577 if (Enum.TryParse(value, true, out PdbType pdbType))
578 {
579 this.PdbType = pdbType;
580 return true;
581 }
582 break;
583 }
584
555 case "nologo": 585 case "nologo":
556 this.ShowLogo = false; 586 this.ShowLogo = false;
557 return true; 587 return true;