From bc101e0424d627ca79f79b30e9fccf61db722466 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 23 Feb 2022 15:15:10 -0800 Subject: Fix wixlib, msm, msi incremental build Simplify and improves the tracking of input and intermediate files to fix incremental build issues for wixlibs, merge modules and MSI databases. --- .../BaseLibrarianExtension.cs | 4 ++-- .../Data/ILibraryResult.cs | 25 ++++++++++++++++++++++ .../ILibrarianExtension.cs | 21 ++++++++++++++++-- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 src/api/wix/WixToolset.Extensibility/Data/ILibraryResult.cs (limited to 'src/api') diff --git a/src/api/wix/WixToolset.Extensibility/BaseLibrarianExtension.cs b/src/api/wix/WixToolset.Extensibility/BaseLibrarianExtension.cs index cbc9e4ba..ff5edae3 100644 --- a/src/api/wix/WixToolset.Extensibility/BaseLibrarianExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/BaseLibrarianExtension.cs @@ -48,8 +48,8 @@ namespace WixToolset.Extensibility /// /// Called at the end of combining. /// - /// Combined library intermediate. - public virtual void PostCombine(Intermediate library) + /// Combined library result. + public virtual void PostCombine(ILibraryResult result) { } diff --git a/src/api/wix/WixToolset.Extensibility/Data/ILibraryResult.cs b/src/api/wix/WixToolset.Extensibility/Data/ILibraryResult.cs new file mode 100644 index 00000000..6974e265 --- /dev/null +++ b/src/api/wix/WixToolset.Extensibility/Data/ILibraryResult.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Extensibility.Data +{ + using System; + using System.Collections.Generic; + using System.Threading; + using WixToolset.Data; + + /// + /// Result of a library combine operation. + /// + public interface ILibraryResult + { + /// + /// Collection of files tracked when binding files into the library. + /// + IReadOnlyCollection TrackedFiles { get; set; } + + /// + /// Output of librarian. + /// + Intermediate Library { get; set; } + } +} diff --git a/src/api/wix/WixToolset.Extensibility/ILibrarianExtension.cs b/src/api/wix/WixToolset.Extensibility/ILibrarianExtension.cs index d9b04cd2..d25da5e4 100644 --- a/src/api/wix/WixToolset.Extensibility/ILibrarianExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/ILibrarianExtension.cs @@ -5,13 +5,30 @@ namespace WixToolset.Extensibility using WixToolset.Data; using WixToolset.Extensibility.Data; -#pragma warning disable 1591 // TODO: add documentation + /// + /// Interface all librarian extensions implement. + /// public interface ILibrarianExtension { + /// + /// Called at the beginning of combining. + /// + /// Librarian context. void PreCombine(ILibraryContext context); + /// + /// Resolves a path to a file path on disk. + /// + /// Source line number for the path to resolve. + /// Symbol related to the path to resolve. + /// Path to resolve. + /// Optional resolved file result. IResolveFileResult ResolveFile(SourceLineNumber sourceLineNumber, IntermediateSymbolDefinition symbolDefinition, string path); - void PostCombine(Intermediate library); + /// + /// Called at the end of combining. + /// + /// Combined library result. + void PostCombine(ILibraryResult result); } } -- cgit v1.2.3-55-g6feb