@joebigelow / wix-1 / commits / 55252821

Absorb Dependency.wixext into Data

Partly resolves wixtoolset/issues#5949

Rob Mensching committed Feb 27, 2021 at 07:29 UTC 55252821d8effa420f95d10824f59d5e176a43b3
6 files changed +187 -4
src/WixToolset.Data/Symbols/SymbolDefinitions.cs
+8
@@ -154,6 +154,8 @@ namespace WixToolset.Data
154 WixCustomTableColumn,
155 WixDeltaPatchFile,
156 WixDeltaPatchSymbolPaths,
157 + WixDependency,
158 + WixDependencyRef,
159 WixDependencyProvider,
160 WixEnsureTable,
161 WixFeatureGroup,
@@ -650,6 +652,12 @@ namespace WixToolset.Data
652 case SymbolDefinitionType.WixDeltaPatchSymbolPaths:
653 return SymbolDefinitions.WixDeltaPatchSymbolPaths;
654
655 + case SymbolDefinitionType.WixDependency:
656 + return SymbolDefinitions.WixDependency;
657 +
658 + case SymbolDefinitionType.WixDependencyRef:
659 + return SymbolDefinitions.WixDependencyRef;
660 +
661 case SymbolDefinitionType.WixEnsureTable:
662 return SymbolDefinitions.WixEnsureTable;
663
src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs
+1 -3
@@ -1,7 +1,5 @@
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
3 -using System;
4 -
3 namespace WixToolset.Data
4 {
5 using WixToolset.Data.Symbols;
@@ -72,4 +70,4 @@ namespace WixToolset.Data.Symbols
70 set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value);
71 }
72 }
75 -}
\ No newline at end of file
73 +}
src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
+1 -1
@@ -7,7 +7,7 @@ namespace WixToolset.Data
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition(
10 - SymbolDefinitionType.WixDependencyProvider.ToString(),
10 + SymbolDefinitionType.WixDependencyProvider,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String),
src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs new
+52
@@ -0,0 +1,52 @@
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 +
3 +namespace WixToolset.Data
4 +{
5 + using WixToolset.Data.Symbols;
6 +
7 + public static partial class SymbolDefinitions
8 + {
9 + public static readonly IntermediateSymbolDefinition WixDependencyRef = new IntermediateSymbolDefinition(
10 + SymbolDefinitionType.WixDependencyRef,
11 + new[]
12 + {
13 + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyProviderRef), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyRef), IntermediateFieldType.String),
15 + },
16 + typeof(WixDependencyRefSymbol));
17 + }
18 +}
19 +
20 +namespace WixToolset.Data.Symbols
21 +{
22 + public enum WixDependencyRefSymbolFields
23 + {
24 + WixDependencyProviderRef,
25 + WixDependencyRef,
26 + }
27 +
28 + public class WixDependencyRefSymbol : IntermediateSymbol
29 + {
30 + public WixDependencyRefSymbol() : base(SymbolDefinitions.WixDependencyRef, null, null)
31 + {
32 + }
33 +
34 + public WixDependencyRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyRef, sourceLineNumber, id)
35 + {
36 + }
37 +
38 + public IntermediateField this[WixDependencyRefSymbolFields index] => this.Fields[(int)index];
39 +
40 + public string WixDependencyProviderRef
41 + {
42 + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyProviderRef].AsString();
43 + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyProviderRef, value);
44 + }
45 +
46 + public string WixDependencyRef
47 + {
48 + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyRef].AsString();
49 + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyRef, value);
50 + }
51 + }
52 +}
src/WixToolset.Data/Symbols/WixDependencySymbol.cs new
+82
@@ -0,0 +1,82 @@
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 +
3 +namespace WixToolset.Data
4 +{
5 + using WixToolset.Data.Symbols;
6 +
7 + public static partial class SymbolDefinitions
8 + {
9 + public static readonly IntermediateSymbolDefinition WixDependency = new IntermediateSymbolDefinition(
10 + SymbolDefinitionType.WixDependency,
11 + new[]
12 + {
13 + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.ProviderKey), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MinVersion), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MaxVersion), IntermediateFieldType.String),
16 + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.Attributes), IntermediateFieldType.Number),
17 + },
18 + typeof(WixDependencySymbol));
19 + }
20 +}
21 +
22 +namespace WixToolset.Data.Symbols
23 +{
24 + using System;
25 +
26 + public enum WixDependencySymbolFields
27 + {
28 + ProviderKey,
29 + MinVersion,
30 + MaxVersion,
31 + Attributes,
32 + }
33 +
34 + [Flags]
35 + public enum WixDependencySymbolAttributes : int
36 + {
37 + None = 0x0,
38 + RequiresAttributesMinVersionInclusive = 0x100,
39 + RequiresAttributesMaxVersionInclusive = 0x200,
40 + }
41 +
42 + public class WixDependencySymbol : IntermediateSymbol
43 + {
44 + public WixDependencySymbol() : base(SymbolDefinitions.WixDependency, null, null)
45 + {
46 + }
47 +
48 + public WixDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependency, sourceLineNumber, id)
49 + {
50 + }
51 +
52 + public IntermediateField this[WixDependencySymbolFields index] => this.Fields[(int)index];
53 +
54 + public string ProviderKey
55 + {
56 + get => this.Fields[(int)WixDependencySymbolFields.ProviderKey].AsString();
57 + set => this.Set((int)WixDependencySymbolFields.ProviderKey, value);
58 + }
59 +
60 + public string MinVersion
61 + {
62 + get => this.Fields[(int)WixDependencySymbolFields.MinVersion].AsString();
63 + set => this.Set((int)WixDependencySymbolFields.MinVersion, value);
64 + }
65 +
66 + public string MaxVersion
67 + {
68 + get => this.Fields[(int)WixDependencySymbolFields.MaxVersion].AsString();
69 + set => this.Set((int)WixDependencySymbolFields.MaxVersion, value);
70 + }
71 +
72 + public WixDependencySymbolAttributes Attributes
73 + {
74 + get => (WixDependencySymbolAttributes)this.Fields[(int)WixDependencySymbolFields.Attributes].AsNumber();
75 + set => this.Set((int)WixDependencySymbolFields.Attributes, (int)value);
76 + }
77 +
78 + public bool RequiresAttributesMinVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive;
79 +
80 + public bool RequiresAttributesMaxVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive;
81 + }
82 +}
src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs
+43
@@ -1732,6 +1732,46 @@ namespace WixToolset.Data.WindowsInstaller
1732 symbolIdIsPrimaryKey: false
1733 );
1734
1735 + public static readonly TableDefinition WixDependencyProvider = new TableDefinition(
1736 + "WixDependencyProvider",
1737 + SymbolDefinitions.WixDependencyProvider,
1738 + new[]
1739 + {
1740 + new ColumnDefinition("WixDependencyProvider", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column),
1741 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "The foreign key into the Component table used to determine install state.", modularizeType: ColumnModularizeType.Column),
1742 + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."),
1743 + new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The version of the package."),
1744 + new ColumnDefinition("DisplayName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The display name of the package."),
1745 + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."),
1746 + },
1747 + symbolIdIsPrimaryKey: true
1748 + );
1749 +
1750 + public static readonly TableDefinition WixDependency = new TableDefinition(
1751 + "WixDependency",
1752 + SymbolDefinitions.WixDependency,
1753 + new[]
1754 + {
1755 + new ColumnDefinition("WixDependency", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column),
1756 + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."),
1757 + new ColumnDefinition("MinVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The minimum version of the provider supported."),
1758 + new ColumnDefinition("MaxVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The maximum version of the provider supported."),
1759 + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."),
1760 + },
1761 + symbolIdIsPrimaryKey: true
1762 + );
1763 +
1764 + public static readonly TableDefinition WixDependencyRef = new TableDefinition(
1765 + "WixDependencyRef",
1766 + SymbolDefinitions.WixDependencyRef,
1767 + new[]
1768 + {
1769 + new ColumnDefinition("WixDependencyProvider_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependencyProvider", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column),
1770 + new ColumnDefinition("WixDependency_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependency", keyColumn: 1, description: "Foreign key into the WixDependency table.", modularizeType: ColumnModularizeType.Column),
1771 + },
1772 + symbolIdIsPrimaryKey: false
1773 + );
1774 +
1775 public static readonly TableDefinition[] All = new[]
1776 {
1777 ActionText,
@@ -1859,6 +1899,9 @@ namespace WixToolset.Data.WindowsInstaller
1899 SummaryInformation,
1900 TransformView,
1901 Validation,
1902 + WixDependency,
1903 + WixDependencyProvider,
1904 + WixDependencyRef,
1905 };
1906 }
1907 }