aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-03-30 17:08:40 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-04-01 22:06:11 -0500
commit386a3578413ba16b3c0615d47870ee44a0e461f6 (patch)
tree1dfcea9e5080f1f15cc880aba1541a962426c58b /src/api
parentd97c0d1685ef4c3840776327e76ce25d4dbdbeb1 (diff)
downloadwix-386a3578413ba16b3c0615d47870ee44a0e461f6.tar.gz
wix-386a3578413ba16b3c0615d47870ee44a0e461f6.tar.bz2
wix-386a3578413ba16b3c0615d47870ee44a0e461f6.zip
Implement BundlePackage.
3693
Diffstat (limited to 'src/api')
-rw-r--r--src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h1
-rw-r--r--src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs5
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackagePayloadSymbol.cs36
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackageSymbol.cs118
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs3
6 files changed, 170 insertions, 1 deletions
diff --git a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
index df8cac76..943f5ead 100644
--- a/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
+++ b/src/api/burn/WixToolset.BootstrapperCore.Native/inc/BootstrapperApplication.h
@@ -106,6 +106,7 @@ enum BOOTSTRAPPER_RELATION_TYPE
106 BOOTSTRAPPER_RELATION_DEPENDENT_ADDON, 106 BOOTSTRAPPER_RELATION_DEPENDENT_ADDON,
107 BOOTSTRAPPER_RELATION_DEPENDENT_PATCH, 107 BOOTSTRAPPER_RELATION_DEPENDENT_PATCH,
108 BOOTSTRAPPER_RELATION_UPDATE, 108 BOOTSTRAPPER_RELATION_UPDATE,
109 BOOTSTRAPPER_RELATION_CHAIN_PACKAGE,
109}; 110};
110 111
111enum BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE 112enum BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE
diff --git a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
index 1786eecd..7cf0957a 100644
--- a/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
+++ b/src/api/burn/WixToolset.Mba.Core/IBootstrapperApplication.cs
@@ -1714,6 +1714,11 @@ namespace WixToolset.Mba.Core
1714 /// 1714 ///
1715 /// </summary> 1715 /// </summary>
1716 Update, 1716 Update,
1717
1718 /// <summary>
1719 ///
1720 /// </summary>
1721 ChainPackage,
1717 } 1722 }
1718 1723
1719 /// <summary> 1724 /// <summary>
diff --git a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
index 21ca1b6d..d4a91343 100644
--- a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
@@ -125,6 +125,8 @@ namespace WixToolset.Data
125 WixBundleCustomData, 125 WixBundleCustomData,
126 WixBundleCustomDataAttribute, 126 WixBundleCustomDataAttribute,
127 WixBundleCustomDataCell, 127 WixBundleCustomDataCell,
128 WixBundleBundlePackage,
129 WixBundleBundlePackagePayload,
128 WixBundleExePackage, 130 WixBundleExePackage,
129 WixBundleExePackagePayload, 131 WixBundleExePackagePayload,
130 WixBundleExtension, 132 WixBundleExtension,
@@ -553,6 +555,12 @@ namespace WixToolset.Data
553 case SymbolDefinitionType.WixBundle: 555 case SymbolDefinitionType.WixBundle:
554 return SymbolDefinitions.WixBundle; 556 return SymbolDefinitions.WixBundle;
555 557
558 case SymbolDefinitionType.WixBundleBundlePackage:
559 return SymbolDefinitions.WixBundleBundlePackage;
560
561 case SymbolDefinitionType.WixBundleBundlePackagePayload:
562 return SymbolDefinitions.WixBundleBundlePackagePayload;
563
556 case SymbolDefinitionType.WixBundleContainer: 564 case SymbolDefinitionType.WixBundleContainer:
557 return SymbolDefinitions.WixBundleContainer; 565 return SymbolDefinitions.WixBundleContainer;
558 566
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackagePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackagePayloadSymbol.cs
new file mode 100644
index 00000000..a171682d
--- /dev/null
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackagePayloadSymbol.cs
@@ -0,0 +1,36 @@
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.Data
4{
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixBundleBundlePackagePayload = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundleBundlePackagePayload,
11 new IntermediateFieldDefinition[]
12 {
13 },
14 typeof(WixBundleBundlePackagePayloadSymbol));
15 }
16}
17
18namespace WixToolset.Data.Symbols
19{
20 public enum WixBundleBundlePackagePayloadSymbolFields
21 {
22 }
23
24 public class WixBundleBundlePackagePayloadSymbol : IntermediateSymbol
25 {
26 public WixBundleBundlePackagePayloadSymbol() : base(SymbolDefinitions.WixBundleBundlePackagePayload, null, null)
27 {
28 }
29
30 public WixBundleBundlePackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleBundlePackagePayload, sourceLineNumber, id)
31 {
32 }
33
34 public IntermediateField this[WixBundleBundlePackagePayloadSymbolFields index] => this.Fields[(int)index];
35 }
36}
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackageSymbol.cs
new file mode 100644
index 00000000..36b9eb67
--- /dev/null
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleBundlePackageSymbol.cs
@@ -0,0 +1,118 @@
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.Data
4{
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixBundleBundlePackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundleBundlePackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number),
14 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.BundleId), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.InstallCommand), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.RepairCommand), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.UninstallCommand), IntermediateFieldType.String),
18 },
19 typeof(WixBundleBundlePackageSymbol));
20 }
21}
22
23namespace WixToolset.Data.Symbols
24{
25 using System;
26
27 public enum WixBundleBundlePackageSymbolFields
28 {
29 Attributes,
30 BundleId,
31 InstallCommand,
32 RepairCommand,
33 UninstallCommand,
34 }
35
36 [Flags]
37 public enum WixBundleBundlePackageAttributes
38 {
39 None = 0,
40 SupportsBurnProtocol = 1,
41 Win64 = 2,
42 }
43
44 public class WixBundleBundlePackageSymbol : IntermediateSymbol
45 {
46 public WixBundleBundlePackageSymbol() : base(SymbolDefinitions.WixBundleBundlePackage, null, null)
47 {
48 }
49
50 public WixBundleBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleBundlePackage, sourceLineNumber, id)
51 {
52 }
53
54 public IntermediateField this[WixBundleBundlePackageSymbolFields index] => this.Fields[(int)index];
55
56 public WixBundleBundlePackageAttributes Attributes
57 {
58 get => (WixBundleBundlePackageAttributes)(int)this.Fields[(int)WixBundleBundlePackageSymbolFields.Attributes];
59 set => this.Set((int)WixBundleBundlePackageSymbolFields.Attributes, (int)value);
60 }
61
62 public string BundleId
63 {
64 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.BundleId];
65 set => this.Set((int)WixBundleBundlePackageSymbolFields.BundleId, value);
66 }
67
68 public string InstallCommand
69 {
70 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.InstallCommand];
71 set => this.Set((int)WixBundleBundlePackageSymbolFields.InstallCommand, value);
72 }
73
74 public string RepairCommand
75 {
76 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.RepairCommand];
77 set => this.Set((int)WixBundleBundlePackageSymbolFields.RepairCommand, value);
78 }
79
80 public string UninstallCommand
81 {
82 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.UninstallCommand];
83 set => this.Set((int)WixBundleBundlePackageSymbolFields.UninstallCommand, value);
84 }
85
86 public bool SupportsBurnProtocol
87 {
88 get { return this.Attributes.HasFlag(WixBundleBundlePackageAttributes.SupportsBurnProtocol); }
89 set
90 {
91 if (value)
92 {
93 this.Attributes |= WixBundleBundlePackageAttributes.SupportsBurnProtocol;
94 }
95 else
96 {
97 this.Attributes &= ~WixBundleBundlePackageAttributes.SupportsBurnProtocol;
98 }
99 }
100 }
101
102 public bool Win64
103 {
104 get { return this.Attributes.HasFlag(WixBundleBundlePackageAttributes.Win64); }
105 set
106 {
107 if (value)
108 {
109 this.Attributes |= WixBundleBundlePackageAttributes.Win64;
110 }
111 else
112 {
113 this.Attributes &= ~WixBundleBundlePackageAttributes.Win64;
114 }
115 }
116 }
117 }
118}
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
index 3d1a6ce8..e68a9d09 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
@@ -66,6 +66,7 @@ namespace WixToolset.Data.Symbols
66 /// </summary> 66 /// </summary>
67 public enum WixBundlePackageType 67 public enum WixBundlePackageType
68 { 68 {
69 Bundle,
69 Exe, 70 Exe,
70 Msi, 71 Msi,
71 Msp, 72 Msp,
@@ -209,4 +210,4 @@ namespace WixToolset.Data.Symbols
209 210
210 public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; 211 public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent;
211 } 212 }
212} \ No newline at end of file 213}