Martin Storsjö 64bc44f5dd [llvm-rc] Run clang to preprocess input files
Allow opting out from preprocessing with a command line argument.

Update tests to pass -no-preprocess to make it not try to use clang
(which isn't a build level dependency of llvm-rc), but add a test that
does preprocessing under clang/test/Preprocessor.

Update a few options to allow them both joined (as -DFOO) and separate
(-D BR), as rc.exe allows both forms of them.

With the verbose flag set, this prints the preprocessing command
used (which differs from what rc.exe does).

Tests under llvm/test/tools/llvm-rc only test constructing the
preprocessor commands, while tests under clang/test/Preprocessor test
actually running the preprocessor.

Differential Revision: https://reviews.llvm.org/D100755
2021-04-21 11:50:10 +03:00

45 lines
2.1 KiB
Plaintext

; RUN: llvm-rc -no-preprocess /C 65001 /FO %t.utf8.res -- %p/Inputs/utf8.rc
; RUN: llvm-readobj %t.utf8.res | FileCheck %s --check-prefix=UTF8
; UTF8: Resource type (int): STRINGTABLE (ID 6)
; UTF8-NEXT: Resource name (int): 1
; UTF8-NEXT: Data version: 0
; UTF8-NEXT: Memory flags: 0x1030
; UTF8-NEXT: Language ID: 1033
; UTF8-NEXT: Version (major): 0
; UTF8-NEXT: Version (minor): 0
; UTF8-NEXT: Characteristics: 0
; UTF8-NEXT: Data size: 68
; UTF8-NEXT: Data: (
; UTF8-NEXT: 0000: 00000700 E500E400 F6002000 A9002000 |.......... ... .|
; UTF8-NEXT: 0010: 61000B00 E500E400 F6002000 A9002000 |a......... ... .|
; UTF8-NEXT: 0020: E500E400 F6002000 A9000000 00000000 |...... .........|
; UTF8-NEXT: 0030: 00000000 00000000 00000000 00000000 |................|
; UTF8-NEXT: 0040: 00000000 |....|
; UTF8-NEXT: )
; RUN: not llvm-rc -no-preprocess /C 65001 /FO %t.utf8-escape-narrow.res -- %p/Inputs/utf8-escape-narrow.rc 2>&1 | FileCheck %s --check-prefix UTF8_ESCAPE
; UTF8_ESCAPE: llvm-rc: Error in STRINGTABLE statement (ID 1):
; UTF8_ESCAPE-NEXT: Unable to interpret single byte (195) as UTF-8
; RUN: llvm-rc -no-preprocess /C 1252 /FO %t.cp1252.res -- %p/Inputs/cp1252.rc
; RUN: llvm-readobj %t.cp1252.res | FileCheck %s --check-prefix=CP1252
; CP1252: Resource type (int): STRINGTABLE (ID 6)
; CP1252-NEXT: Resource name (int): 1
; CP1252-NEXT: Data version: 0
; CP1252-NEXT: Memory flags: 0x1030
; CP1252-NEXT: Language ID: 1033
; CP1252-NEXT: Version (major): 0
; CP1252-NEXT: Version (minor): 0
; CP1252-NEXT: Characteristics: 0
; CP1252-NEXT: Data size: 92
; CP1252-NEXT: Data: (
; CP1252-NEXT: 0000: 00000F00 E500E400 F6002000 A9002000 |.......... ... .|
; CP1252-NEXT: 0010: 92012000 E500E400 F6002000 A9002000 |.. ....... ... .|
; CP1252-NEXT: 0020: 92010F00 E500E400 F6002000 A9002000 |.......... ... .|
; CP1252-NEXT: 0030: 92012000 E500E400 F6002000 A9002000 |.. ....... ... .|
; CP1252-NEXT: 0040: 92010000 00000000 00000000 00000000 |................|
; CP1252-NEXT: 0050: 00000000 00000000 00000000 |............|
; CP1252-NEXT: )