diff options
| author | Rob Mensching <rob@firegiant.com> | 2019-05-23 15:37:56 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2019-05-23 16:02:37 -0700 |
| commit | 354f6d5b79404544cb7c0e11a0d9212b4780ce09 (patch) | |
| tree | 1082ce6dd66604f7da315d6a15c85ac3f56b745a /src/WixToolset.Core/Compiler.cs | |
| parent | 3051bf2fc300df125115c9538a0bfc8256bfde6a (diff) | |
| download | wix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.tar.gz wix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.tar.bz2 wix-354f6d5b79404544cb7c0e11a0d9212b4780ce09.zip | |
Integrate latest Data changes for FileTuple and AssemblyTuple
Diffstat (limited to 'src/WixToolset.Core/Compiler.cs')
| -rw-r--r-- | src/WixToolset.Core/Compiler.cs | 128 |
1 files changed, 51 insertions, 77 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index d543c6b8..0dade46d 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
| @@ -32,7 +32,6 @@ namespace WixToolset.Core | |||
| 32 | private bool compilingModule; | 32 | private bool compilingModule; |
| 33 | private bool compilingProduct; | 33 | private bool compilingProduct; |
| 34 | 34 | ||
| 35 | private bool useShortFileNames; | ||
| 36 | private string activeName; | 35 | private string activeName; |
| 37 | private string activeLanguage; | 36 | private string activeLanguage; |
| 38 | 37 | ||
| @@ -4184,16 +4183,7 @@ namespace WixToolset.Core | |||
| 4184 | } | 4183 | } |
| 4185 | else // add the appropriate part of this directory element to the file source. | 4184 | else // add the appropriate part of this directory element to the file source. |
| 4186 | { | 4185 | { |
| 4187 | string append = null; | 4186 | string append = String.IsNullOrEmpty(sourceName) ? name : sourceName; |
| 4188 | if (this.useShortFileNames) | ||
| 4189 | { | ||
| 4190 | append = !String.IsNullOrEmpty(shortSourceName) ? shortSourceName : shortName; | ||
| 4191 | } | ||
| 4192 | |||
| 4193 | if (String.IsNullOrEmpty(append)) | ||
| 4194 | { | ||
| 4195 | append = !String.IsNullOrEmpty(sourceName) ? sourceName : name; | ||
| 4196 | } | ||
| 4197 | 4187 | ||
| 4198 | if (!String.IsNullOrEmpty(append)) | 4188 | if (!String.IsNullOrEmpty(append)) |
| 4199 | { | 4189 | { |
| @@ -5486,7 +5476,7 @@ namespace WixToolset.Core | |||
| 5486 | { | 5476 | { |
| 5487 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 5477 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
| 5488 | Identifier id = null; | 5478 | Identifier id = null; |
| 5489 | var assemblyType = FileAssemblyType.NotAnAssembly; | 5479 | var assemblyType = AssemblyType.NotAnAssembly; |
| 5490 | string assemblyApplication = null; | 5480 | string assemblyApplication = null; |
| 5491 | string assemblyManifest = null; | 5481 | string assemblyManifest = null; |
| 5492 | string bindPath = null; | 5482 | string bindPath = null; |
| @@ -5538,13 +5528,13 @@ namespace WixToolset.Core | |||
| 5538 | switch (assemblyValue) | 5528 | switch (assemblyValue) |
| 5539 | { | 5529 | { |
| 5540 | case ".net": | 5530 | case ".net": |
| 5541 | assemblyType = FileAssemblyType.DotNetAssembly; | 5531 | assemblyType = AssemblyType.DotNetAssembly; |
| 5542 | break; | 5532 | break; |
| 5543 | case "no": | 5533 | case "no": |
| 5544 | assemblyType = FileAssemblyType.NotAnAssembly; | 5534 | assemblyType = AssemblyType.NotAnAssembly; |
| 5545 | break; | 5535 | break; |
| 5546 | case "win32": | 5536 | case "win32": |
| 5547 | assemblyType = FileAssemblyType.Win32Assembly; | 5537 | assemblyType = AssemblyType.Win32Assembly; |
| 5548 | break; | 5538 | break; |
| 5549 | default: | 5539 | default: |
| 5550 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "File", "Assembly", assemblyValue, "no", "win32", ".net")); | 5540 | this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, "File", "Assembly", assemblyValue, "no", "win32", ".net")); |
| @@ -5743,7 +5733,7 @@ namespace WixToolset.Core | |||
| 5743 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "DefaultVersion", "CompanionFile", companionFile)); | 5733 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(sourceLineNumbers, node.Name.LocalName, "DefaultVersion", "CompanionFile", companionFile)); |
| 5744 | } | 5734 | } |
| 5745 | 5735 | ||
| 5746 | if (FileAssemblyType.NotAnAssembly == assemblyType) | 5736 | if (AssemblyType.NotAnAssembly == assemblyType) |
| 5747 | { | 5737 | { |
| 5748 | if (null != assemblyManifest) | 5738 | if (null != assemblyManifest) |
| 5749 | { | 5739 | { |
| @@ -5757,7 +5747,7 @@ namespace WixToolset.Core | |||
| 5757 | } | 5747 | } |
| 5758 | else | 5748 | else |
| 5759 | { | 5749 | { |
| 5760 | if (FileAssemblyType.Win32Assembly == assemblyType && null == assemblyManifest) | 5750 | if (AssemblyType.Win32Assembly == assemblyType && null == assemblyManifest) |
| 5761 | { | 5751 | { |
| 5762 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "AssemblyManifest", "Assembly", "win32")); | 5752 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "AssemblyManifest", "Assembly", "win32")); |
| 5763 | } | 5753 | } |
| @@ -5765,7 +5755,7 @@ namespace WixToolset.Core | |||
| 5765 | // allow "*" guid components to omit explicit KeyPath as they can have only one file and therefore this file is the keypath | 5755 | // allow "*" guid components to omit explicit KeyPath as they can have only one file and therefore this file is the keypath |
| 5766 | if (YesNoType.Yes != keyPath && "*" != componentGuid) | 5756 | if (YesNoType.Yes != keyPath && "*" != componentGuid) |
| 5767 | { | 5757 | { |
| 5768 | this.Core.Write(ErrorMessages.IllegalAttributeValueWithoutOtherAttribute(sourceLineNumbers, node.Name.LocalName, "Assembly", (FileAssemblyType.DotNetAssembly == assemblyType ? ".net" : "win32"), "KeyPath", "yes")); | 5758 | this.Core.Write(ErrorMessages.IllegalAttributeValueWithoutOtherAttribute(sourceLineNumbers, node.Name.LocalName, "Assembly", (AssemblyType.DotNetAssembly == assemblyType ? ".net" : "win32"), "KeyPath", "yes")); |
| 5769 | } | 5759 | } |
| 5770 | } | 5760 | } |
| 5771 | 5761 | ||
| @@ -5852,90 +5842,72 @@ namespace WixToolset.Core | |||
| 5852 | 5842 | ||
| 5853 | if (String.IsNullOrEmpty(source)) | 5843 | if (String.IsNullOrEmpty(source)) |
| 5854 | { | 5844 | { |
| 5855 | if (!this.useShortFileNames && null != name) | 5845 | source = name ?? shortName; |
| 5856 | { | ||
| 5857 | source = name; | ||
| 5858 | } | ||
| 5859 | else | ||
| 5860 | { | ||
| 5861 | source = shortName; | ||
| 5862 | } | ||
| 5863 | } | 5846 | } |
| 5864 | else if (source.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) // if source relies on parent directories, append the file name | 5847 | else if (source.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) // if source relies on parent directories, append the file name |
| 5865 | { | 5848 | { |
| 5866 | if (!this.useShortFileNames && null != name) | 5849 | source = null == name ? Path.Combine(source, shortName) : Path.Combine(source, name); |
| 5867 | { | ||
| 5868 | source = Path.Combine(source, name); | ||
| 5869 | } | ||
| 5870 | else | ||
| 5871 | { | ||
| 5872 | source = Path.Combine(source, shortName); | ||
| 5873 | } | ||
| 5874 | } | 5850 | } |
| 5875 | 5851 | ||
| 5852 | var attributes = FileTupleAttributes.None; | ||
| 5853 | attributes |= readOnly ? FileTupleAttributes.ReadOnly : 0; | ||
| 5854 | attributes |= hidden ? FileTupleAttributes.Hidden : 0; | ||
| 5855 | attributes |= system ? FileTupleAttributes.System : 0; | ||
| 5856 | attributes |= vital ? FileTupleAttributes.Vital : 0; | ||
| 5857 | attributes |= checksum ? FileTupleAttributes.Checksum : 0; | ||
| 5858 | attributes |= compressed.HasValue && compressed == true ? FileTupleAttributes.Compressed : 0; | ||
| 5859 | attributes |= compressed.HasValue && compressed == false ? FileTupleAttributes.Uncompressed : 0; | ||
| 5860 | attributes |= generatedShortFileName ? FileTupleAttributes.GeneratedShortFileName : 0; | ||
| 5861 | |||
| 5876 | var tuple = new FileTuple(sourceLineNumbers, id) | 5862 | var tuple = new FileTuple(sourceLineNumbers, id) |
| 5877 | { | 5863 | { |
| 5878 | ComponentRef = componentId, | 5864 | ComponentRef = componentId, |
| 5879 | ShortName = shortName, | ||
| 5880 | Name = name, | 5865 | Name = name, |
| 5866 | ShortName = shortName, | ||
| 5881 | FileSize = defaultSize, | 5867 | FileSize = defaultSize, |
| 5882 | Version = companionFile ?? defaultVersion, | 5868 | Version = companionFile ?? defaultVersion, |
| 5883 | Language = defaultLanguage, | 5869 | Language = defaultLanguage, |
| 5884 | ReadOnly = readOnly, | 5870 | Attributes = attributes, |
| 5885 | Hidden = hidden, | 5871 | |
| 5886 | System = system, | 5872 | //ReadOnly = readOnly, |
| 5887 | Vital = vital, | 5873 | //Hidden = hidden, |
| 5888 | Checksum = checksum, | 5874 | //System = system, |
| 5889 | Compressed = compressed, | 5875 | //Vital = vital, |
| 5876 | //Checksum = checksum, | ||
| 5877 | //Compressed = compressed, | ||
| 5878 | //GeneratedShortFileName = generatedShortFileName, | ||
| 5879 | |||
| 5880 | DirectoryRef = directoryId, | ||
| 5881 | DiskId = (CompilerConstants.IntegerNotSet == diskId) ? null : (int?)diskId, | ||
| 5882 | Source = new IntermediateFieldPathValue { Path = source }, | ||
| 5883 | |||
| 5890 | FontTitle = fontTitle, | 5884 | FontTitle = fontTitle, |
| 5891 | SelfRegCost = selfRegCost, | 5885 | SelfRegCost = selfRegCost, |
| 5892 | BindPath = bindPath, | 5886 | BindPath = bindPath, |
| 5893 | }; | ||
| 5894 | 5887 | ||
| 5895 | this.Core.AddTuple(tuple); | 5888 | PatchGroup = (CompilerConstants.IntegerNotSet == patchGroup) ? null : (int?)patchGroup, |
| 5889 | PatchAttributes = patchAttributes, | ||
| 5896 | 5890 | ||
| 5897 | // TODO: Remove all this. | 5891 | // Delta patching information |
| 5898 | var wixFileRow = (WixFileTuple)this.Core.CreateTuple(sourceLineNumbers, TupleDefinitionType.WixFile, id); | ||
| 5899 | wixFileRow.AssemblyType = assemblyType; | ||
| 5900 | wixFileRow.AssemblyManifestFileRef = assemblyManifest; | ||
| 5901 | wixFileRow.AssemblyApplicationFileRef = assemblyApplication; | ||
| 5902 | wixFileRow.DirectoryRef = directoryId; | ||
| 5903 | wixFileRow.DiskId = (CompilerConstants.IntegerNotSet == diskId) ? 0 : diskId; | ||
| 5904 | wixFileRow.Source = new IntermediateFieldPathValue { Path = source }; | ||
| 5905 | wixFileRow.ProcessorArchitecture = procArch; | ||
| 5906 | wixFileRow.PatchGroup = (CompilerConstants.IntegerNotSet != patchGroup ? patchGroup : -1); | ||
| 5907 | wixFileRow.Attributes = (generatedShortFileName ? 0x1 : 0x0); | ||
| 5908 | wixFileRow.PatchAttributes = patchAttributes; | ||
| 5909 | |||
| 5910 | // Always create a delta patch row for this file since other elements (like Component and Media) may | ||
| 5911 | // want to add symbol paths to it. | ||
| 5912 | this.Core.AddTuple(new WixDeltaPatchFileTuple(sourceLineNumbers, id) | ||
| 5913 | { | ||
| 5914 | RetainLengths = protectLengths, | 5892 | RetainLengths = protectLengths, |
| 5915 | IgnoreOffsets = ignoreOffsets, | 5893 | IgnoreOffsets = ignoreOffsets, |
| 5916 | IgnoreLengths = ignoreLengths, | 5894 | IgnoreLengths = ignoreLengths, |
| 5917 | RetainOffsets = protectOffsets | 5895 | RetainOffsets = protectOffsets, |
| 5918 | }); | 5896 | SymbolPaths = symbols |
| 5897 | }; | ||
| 5919 | 5898 | ||
| 5920 | if (null != symbols) | 5899 | this.Core.AddTuple(tuple); |
| 5921 | { | ||
| 5922 | this.Core.AddTuple(new WixDeltaPatchSymbolPathsTuple(sourceLineNumbers) | ||
| 5923 | { | ||
| 5924 | SymbolType = SymbolPathType.File, | ||
| 5925 | SymbolId = id.Id, | ||
| 5926 | SymbolPaths = symbols | ||
| 5927 | }); | ||
| 5928 | } | ||
| 5929 | 5900 | ||
| 5930 | if (FileAssemblyType.NotAnAssembly != assemblyType) | 5901 | if (AssemblyType.NotAnAssembly != assemblyType) |
| 5931 | { | 5902 | { |
| 5932 | this.Core.AddTuple(new MsiAssemblyTuple(sourceLineNumbers) | 5903 | this.Core.AddTuple(new AssemblyTuple(sourceLineNumbers, id) |
| 5933 | { | 5904 | { |
| 5934 | ComponentRef = componentId, | 5905 | ComponentRef = componentId, |
| 5935 | FeatureRef = Guid.Empty.ToString("B"), | 5906 | FeatureRef = Guid.Empty.ToString("B"), |
| 5936 | ManifestFileRef = assemblyManifest, | 5907 | ManifestFileRef = assemblyManifest, |
| 5937 | ApplicationFileRef = assemblyApplication, | 5908 | ApplicationFileRef = assemblyApplication, |
| 5938 | Type = assemblyType | 5909 | Type = assemblyType, |
| 5910 | ProcessorArchitecture = procArch, | ||
| 5939 | }); | 5911 | }); |
| 5940 | } | 5912 | } |
| 5941 | } | 5913 | } |
| @@ -7599,7 +7571,7 @@ namespace WixToolset.Core | |||
| 7599 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 7571 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
| 7600 | Identifier id = null; | 7572 | Identifier id = null; |
| 7601 | var configData = String.Empty; | 7573 | var configData = String.Empty; |
| 7602 | bool? fileCompression = null; | 7574 | FileTupleAttributes attributes = 0; |
| 7603 | string language = null; | 7575 | string language = null; |
| 7604 | string sourceFile = null; | 7576 | string sourceFile = null; |
| 7605 | 7577 | ||
| @@ -7617,7 +7589,9 @@ namespace WixToolset.Core | |||
| 7617 | this.Core.CreateSimpleReference(sourceLineNumbers, "Media", diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); | 7589 | this.Core.CreateSimpleReference(sourceLineNumbers, "Media", diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); |
| 7618 | break; | 7590 | break; |
| 7619 | case "FileCompression": | 7591 | case "FileCompression": |
| 7620 | fileCompression = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 7592 | var compress = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
| 7593 | attributes |= compress == YesNoType.Yes ? FileTupleAttributes.Compressed : 0; | ||
| 7594 | attributes |= compress == YesNoType.No ? FileTupleAttributes.Uncompressed : 0; | ||
| 7621 | break; | 7595 | break; |
| 7622 | case "Language": | 7596 | case "Language": |
| 7623 | language = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); | 7597 | language = this.Core.GetAttributeLocalizableIntegerValue(sourceLineNumbers, attrib, 0, Int16.MaxValue); |
| @@ -7692,7 +7666,7 @@ namespace WixToolset.Core | |||
| 7692 | SourceFile = sourceFile, | 7666 | SourceFile = sourceFile, |
| 7693 | DiskId = diskId, | 7667 | DiskId = diskId, |
| 7694 | ConfigurationData = configData, | 7668 | ConfigurationData = configData, |
| 7695 | FileCompression = fileCompression, | 7669 | FileAttributes = attributes, |
| 7696 | FeatureRef = Guid.Empty.ToString("B") | 7670 | FeatureRef = Guid.Empty.ToString("B") |
| 7697 | }; | 7671 | }; |
| 7698 | 7672 | ||
