aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-02-23 15:15:10 -0800
committerRob Mensching <rob@firegiant.com>2022-02-23 18:33:52 -0800
commitbc101e0424d627ca79f79b30e9fccf61db722466 (patch)
treec996242aba6e876e91f70413be7fdb7142471304 /src/api
parent72a63a97f062c1755a2edc4afe45c17bec68ddcf (diff)
downloadwix-bc101e0424d627ca79f79b30e9fccf61db722466.tar.gz
wix-bc101e0424d627ca79f79b30e9fccf61db722466.tar.bz2
wix-bc101e0424d627ca79f79b30e9fccf61db722466.zip
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.
Diffstat (limited to 'src/api')
-rw-r--r--src/api/wix/WixToolset.Extensibility/BaseLibrarianExtension.cs4
-rw-r--r--src/api/wix/WixToolset.Extensibility/Data/ILibraryResult.cs25
-rw-r--r--src/api/wix/WixToolset.Extensibility/ILibrarianExtension.cs21
3 files changed, 46 insertions, 4 deletions
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
48 /// <summary> 48 /// <summary>
49 /// Called at the end of combining. 49 /// Called at the end of combining.
50 /// </summary> 50 /// </summary>
51 /// <param name="library">Combined library intermediate.</param> 51 /// <param name="result">Combined library result.</param>
52 public virtual void PostCombine(Intermediate library) 52 public virtual void PostCombine(ILibraryResult result)
53 { 53 {
54 } 54 }
55 55
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 @@
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.Extensibility.Data
4{
5 using System;
6 using System.Collections.Generic;
7 using System.Threading;
8 using WixToolset.Data;
9
10 /// <summary>
11 /// Result of a library combine operation.
12 /// </summary>
13 public interface ILibraryResult
14 {
15 /// <summary>
16 /// Collection of files tracked when binding files into the library.
17 /// </summary>
18 IReadOnlyCollection<ITrackedFile> TrackedFiles { get; set; }
19
20 /// <summary>
21 /// Output of librarian.
22 /// </summary>
23 Intermediate Library { get; set; }
24 }
25}
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
5 using WixToolset.Data; 5 using WixToolset.Data;
6 using WixToolset.Extensibility.Data; 6 using WixToolset.Extensibility.Data;
7 7
8#pragma warning disable 1591 // TODO: add documentation 8 /// <summary>
9 /// Interface all librarian extensions implement.
10 /// </summary>
9 public interface ILibrarianExtension 11 public interface ILibrarianExtension
10 { 12 {
13 /// <summary>
14 /// Called at the beginning of combining.
15 /// </summary>
16 /// <param name="context">Librarian context.</param>
11 void PreCombine(ILibraryContext context); 17 void PreCombine(ILibraryContext context);
12 18
19 /// <summary>
20 /// Resolves a path to a file path on disk.
21 /// </summary>
22 /// <param name="sourceLineNumber">Source line number for the path to resolve.</param>
23 /// <param name="symbolDefinition">Symbol related to the path to resolve.</param>
24 /// <param name="path">Path to resolve.</param>
25 /// <returns>Optional resolved file result.</returns>
13 IResolveFileResult ResolveFile(SourceLineNumber sourceLineNumber, IntermediateSymbolDefinition symbolDefinition, string path); 26 IResolveFileResult ResolveFile(SourceLineNumber sourceLineNumber, IntermediateSymbolDefinition symbolDefinition, string path);
14 27
15 void PostCombine(Intermediate library); 28 /// <summary>
29 /// Called at the end of combining.
30 /// </summary>
31 /// <param name="result">Combined library result.</param>
32 void PostCombine(ILibraryResult result);
16 } 33 }
17} 34}