Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[llvm-rc] Serialize VERSIONINFO resources to .res files.
This is now able to dump VERSIONINFO resources. Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx Differential Revision: https://reviews.llvm.org/D38410 Patch by: Marek Sokolowski llvm-svn: 315110
- Loading branch information
Zachary Turner
committed
Oct 6, 2017
1 parent
c3ab013
commit 07bc04f
Showing
15 changed files
with
469 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
llvm/test/tools/llvm-rc/Inputs/tag-versioninfo-mixed-ints-strings.rc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
1 VERSIONINFO | ||
FILEVERSION 1, 2, 3, 4 | ||
PRODUCTVERSION 5, 6, 7, 8 | ||
FILEFLAGSMASK 50 | ||
FILEFLAGS 555 | ||
FILEOS 110 | ||
FILETYPE 555555 | ||
FILESUBTYPE 14 | ||
BEGIN | ||
BLOCK "StringFileInfo" | ||
BEGIN | ||
BLOCK "040904E4" | ||
{ | ||
VALUE "CompanyName", 32768 | ||
VALUE "FileDescription", 5, "a", 3 | ||
} | ||
END | ||
END |
18 changes: 18 additions & 0 deletions
18
llvm/test/tools/llvm-rc/Inputs/tag-versioninfo-word-too-large.rc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
1 VERSIONINFO | ||
FILEVERSION 1, 2, 3, 4 | ||
PRODUCTVERSION 5, 6, 7, 8 | ||
FILEFLAGSMASK 50 | ||
FILEFLAGS 555 | ||
FILEOS 110 | ||
FILETYPE 555555 | ||
FILESUBTYPE 14 | ||
BEGIN | ||
BLOCK "StringFileInfo" | ||
BEGIN | ||
BLOCK "040904E4" | ||
{ | ||
VALUE "CompanyName", 32768 | ||
VALUE "FileDescription", 65536 | ||
} | ||
END | ||
END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
1 VERSIONINFO | ||
FILEVERSION 1, 2, 3, 4 | ||
PRODUCTVERSION 5, 6, 7, 8 | ||
FILEFLAGSMASK 50 | ||
FILEFLAGS 555 | ||
FILEOS 110 | ||
FILETYPE 555555 | ||
FILESUBTYPE 14 | ||
BEGIN | ||
BLOCK "StringFileInfo" | ||
BEGIN | ||
BLOCK "040904E4" | ||
{ | ||
VALUE "CompanyName", "a" | ||
VALUE "FileDescription", "b" "c", "d", L"eee" "f" L"g", "a", L"hohoho" | ||
VALUE "FileVersion", "c" | ||
VALUE "InternalName", "d" | ||
VALUE "LegalCopyright", "e" "0" | ||
VALUE "LegalTrademarks1", 1 2, 3 | ||
VALUE "LegalTrademarks2", "g" | ||
VALUE "OriginalFilename", L"h" | ||
VALUE "ProductName", "a" "b", "c" | ||
VALUE "ProductVersion", 0x12345678L | ||
} | ||
END | ||
|
||
BLOCK "VarFileInfo" | ||
BEGIN | ||
VALUE "Translation", 0x409, 1252 | ||
|
||
END | ||
END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
; RUN: llvm-rc /FO %t %p/Inputs/tag-versioninfo.rc | ||
; RUN: llvm-readobj %t | FileCheck %s | ||
|
||
; CHECK: Resource type (int): 16 | ||
; CHECK-NEXT: Resource name (int): 1 | ||
; CHECK-NEXT: Data version: 0 | ||
; CHECK-NEXT: Memory flags: 0x30 | ||
; CHECK-NEXT: Language ID: 1033 | ||
; CHECK-NEXT: Version (major): 0 | ||
; CHECK-NEXT: Version (minor): 0 | ||
; CHECK-NEXT: Characteristics: 0 | ||
; CHECK-NEXT: Data size: 672 | ||
; CHECK-NEXT: Data: ( | ||
; CHECK-NEXT: 0000: A0023400 00005600 53005F00 56004500 |..4...V.S._.V.E.| | ||
; CHECK-NEXT: 0010: 52005300 49004F00 4E005F00 49004E00 |R.S.I.O.N._.I.N.| | ||
; CHECK-NEXT: 0020: 46004F00 00000000 BD04EFFE 00000100 |F.O.............| | ||
; CHECK-NEXT: 0030: 02000100 04000300 06000500 08000700 |................| | ||
; CHECK-NEXT: 0040: 32000000 2B020000 6E000000 237A0800 |2...+...n...#z..| | ||
; CHECK-NEXT: 0050: 0E000000 00000000 00000000 00020000 |................| | ||
; CHECK-NEXT: 0060: 01005300 74007200 69006E00 67004600 |..S.t.r.i.n.g.F.| | ||
; CHECK-NEXT: 0070: 69006C00 65004900 6E006600 6F000000 |i.l.e.I.n.f.o...| | ||
; CHECK-NEXT: 0080: DC010000 01003000 34003000 39003000 |......0.4.0.9.0.| | ||
; CHECK-NEXT: 0090: 34004500 34000000 24000200 01004300 |4.E.4...$.....C.| | ||
; CHECK-NEXT: 00A0: 6F006D00 70006100 6E007900 4E006100 |o.m.p.a.n.y.N.a.| | ||
; CHECK-NEXT: 00B0: 6D006500 00000000 61000000 50001400 |m.e.....a...P...| | ||
; CHECK-NEXT: 00C0: 01004600 69006C00 65004400 65007300 |..F.i.l.e.D.e.s.| | ||
; CHECK-NEXT: 00D0: 63007200 69007000 74006900 6F006E00 |c.r.i.p.t.i.o.n.| | ||
; CHECK-NEXT: 00E0: 00000000 62006300 00006400 00006500 |....b.c...d...e.| | ||
; CHECK-NEXT: 00F0: 65006500 66006700 00006100 00006800 |e.e.f.g...a...h.| | ||
; CHECK-NEXT: 0100: 6F006800 6F006800 6F000000 24000200 |o.h.o.h.o...$...| | ||
; CHECK-NEXT: 0110: 01004600 69006C00 65005600 65007200 |..F.i.l.e.V.e.r.| | ||
; CHECK-NEXT: 0120: 73006900 6F006E00 00000000 63000000 |s.i.o.n.....c...| | ||
; CHECK-NEXT: 0130: 24000200 01004900 6E007400 65007200 |$.....I.n.t.e.r.| | ||
; CHECK-NEXT: 0140: 6E006100 6C004E00 61006D00 65000000 |n.a.l.N.a.m.e...| | ||
; CHECK-NEXT: 0150: 64000000 2A000300 01004C00 65006700 |d...*.....L.e.g.| | ||
; CHECK-NEXT: 0160: 61006C00 43006F00 70007900 72006900 |a.l.C.o.p.y.r.i.| | ||
; CHECK-NEXT: 0170: 67006800 74000000 65003000 00000000 |g.h.t...e.0.....| | ||
; CHECK-NEXT: 0180: 2E000600 00004C00 65006700 61006C00 |......L.e.g.a.l.| | ||
; CHECK-NEXT: 0190: 54007200 61006400 65006D00 61007200 |T.r.a.d.e.m.a.r.| | ||
; CHECK-NEXT: 01A0: 6B007300 31000000 01000200 03000000 |k.s.1...........| | ||
; CHECK-NEXT: 01B0: 2C000200 01004C00 65006700 61006C00 |,.....L.e.g.a.l.| | ||
; CHECK-NEXT: 01C0: 54007200 61006400 65006D00 61007200 |T.r.a.d.e.m.a.r.| | ||
; CHECK-NEXT: 01D0: 6B007300 32000000 67000000 2C000200 |k.s.2...g...,...| | ||
; CHECK-NEXT: 01E0: 01004F00 72006900 67006900 6E006100 |..O.r.i.g.i.n.a.| | ||
; CHECK-NEXT: 01F0: 6C004600 69006C00 65006E00 61006D00 |l.F.i.l.e.n.a.m.| | ||
; CHECK-NEXT: 0200: 65000000 68000000 2A000500 01005000 |e...h...*.....P.| | ||
; CHECK-NEXT: 0210: 72006F00 64007500 63007400 4E006100 |r.o.d.u.c.t.N.a.| | ||
; CHECK-NEXT: 0220: 6D006500 00000000 61006200 00006300 |m.e.....a.b...c.| | ||
; CHECK-NEXT: 0230: 00000000 28000400 00005000 72006F00 |....(.....P.r.o.| | ||
; CHECK-NEXT: 0240: 64007500 63007400 56006500 72007300 |d.u.c.t.V.e.r.s.| | ||
; CHECK-NEXT: 0250: 69006F00 6E000000 78563412 44000000 |i.o.n...xV4.D...| | ||
; CHECK-NEXT: 0260: 01005600 61007200 46006900 6C006500 |..V.a.r.F.i.l.e.| | ||
; CHECK-NEXT: 0270: 49006E00 66006F00 00000000 24000400 |I.n.f.o.....$...| | ||
; CHECK-NEXT: 0280: 00005400 72006100 6E007300 6C006100 |..T.r.a.n.s.l.a.| | ||
; CHECK-NEXT: 0290: 74006900 6F006E00 00000000 0904E404 |t.i.o.n.........| | ||
; CHECK-NEXT: ) | ||
|
||
|
||
; RUN: not llvm-rc /FO %t %p/Inputs/tag-versioninfo-mixed-ints-strings.rc 2>&1 | FileCheck %s --check-prefix STRINT | ||
; STRINT: llvm-rc: Error in VERSIONINFO statement (ID 1): | ||
; STRINT-NEXT: VALUE "FileDescription" cannot contain both strings and integers | ||
|
||
|
||
; RUN: not llvm-rc /FO %t %p/Inputs/tag-versioninfo-word-too-large.rc 2>&1 | FileCheck %s --check-prefix WORD | ||
; WORD: llvm-rc: Error in VERSIONINFO statement (ID 1): | ||
; WORD-NEXT: VERSIONINFO integer value (65536) does not fit in 16 bits. |
Oops, something went wrong.