From 1adfdda935b814541693cd550bb34fdbf2942b1f Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 26 Mar 2020 13:51:14 -0400 Subject: Add intermediate levels to track how IR has been lowered. --- src/WixToolset.Core/Compiler.cs | 2 ++ src/WixToolset.Core/Librarian.cs | 4 +++- src/WixToolset.Core/Linker.cs | 8 +++++++- src/WixToolset.Core/Resolver.cs | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/WixToolset.Core') diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index de718c84..8c0c4a39 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs @@ -163,6 +163,8 @@ namespace WixToolset.Core this.Core = null; } + target.UpdateLevel(IntermediateLevels.Compiled); + return this.Messaging.EncounteredError ? null : target; } diff --git a/src/WixToolset.Core/Librarian.cs b/src/WixToolset.Core/Librarian.cs index b6be73e9..d862c326 100644 --- a/src/WixToolset.Core/Librarian.cs +++ b/src/WixToolset.Core/Librarian.cs @@ -63,7 +63,9 @@ namespace WixToolset.Core section.LibraryId = context.LibraryId; } - library = new Intermediate(context.LibraryId, sections, localizationsByCulture); + library = new Intermediate(context.LibraryId, IntermediateLevels.Compiled, sections, localizationsByCulture); + + library.UpdateLevel(IntermediateLevels.Combined); this.Validate(library); } diff --git a/src/WixToolset.Core/Linker.cs b/src/WixToolset.Core/Linker.cs index 6ef252b7..f05aabd1 100644 --- a/src/WixToolset.Core/Linker.cs +++ b/src/WixToolset.Core/Linker.cs @@ -70,6 +70,12 @@ namespace WixToolset.Core extension.PreLink(this.Context); } + var invalidIntermediates = this.Context.Intermediates.Where(i => !i.HasLevel(Data.IntermediateLevels.Compiled)); + if (invalidIntermediates.Any()) + { + this.Messaging.Write(ErrorMessages.IntermediatesMustBeCompiled(String.Join(", ", invalidIntermediates.Select(i => i.Id)))); + } + Intermediate intermediate = null; try { @@ -564,7 +570,7 @@ namespace WixToolset.Core var collate = new CollateLocalizationsCommand(this.Messaging, localizations); var localizationsByCulture = collate.Execute(); - intermediate = new Intermediate(resolvedSection.Id, new[] { resolvedSection }, localizationsByCulture); + intermediate = new Intermediate(resolvedSection.Id, Data.IntermediateLevels.Linked, new[] { resolvedSection }, localizationsByCulture); #if MOVE_TO_BACKEND this.CheckOutputConsistency(output); diff --git a/src/WixToolset.Core/Resolver.cs b/src/WixToolset.Core/Resolver.cs index 6913ce98..d4a03d82 100644 --- a/src/WixToolset.Core/Resolver.cs +++ b/src/WixToolset.Core/Resolver.cs @@ -114,6 +114,8 @@ namespace WixToolset.Core var expectedEmbeddedFiles = filesWithEmbeddedFiles.GetExpectedEmbeddedFiles(); + context.IntermediateRepresentation.UpdateLevel(IntermediateLevels.Resolved); + return new ResolveResult { Codepage = codepage.HasValue ? codepage.Value : -1, -- cgit v1.2.3-55-g6feb