wrc
Wine Resource Compiler
see also :
wine
Synopsis
wrc
[options] [inputfiles]
add an example, a script, a trick and tips
examples
no example yet ...
... Feel free to add your own example above to help other Linux-lovers !
description
wrc
compiles resources from inputfile into win16 and
win32 compatible binary format.
The
source-file is preprocessed with a builtin
ANSI-C compatible preprocessor before the resources
are compiled. See PREPROCESSOR below.
wrc
takes a series of inputfile as argument. The
resources are read from standard input if no inputfile is
given. If the output file is not specified with -o,
then wrc will write the output to
inputfile.res with .rc stripped, or to
wrc.tab.res if no inputfile was given.
options
-b, --target=cpu-manufacturer[-kernel]-os
Specify the target CPU and
platform on which the generated code will be built. The
target specification is in the standard autoconf format as
returned by config.sub.
-D,
--define=id[=val]
Define preprocessor identifier
id to (optionally) value val. See also
PREPROCESSOR below.
--debug=nn
Set debug level to nn.
The value is a bitmask consisting of 1=verbose, 2=dump
internals, 4=resource parser trace, 8=preprocessor messages,
16=preprocessor scanner and 32=preprocessor parser
trace.
--endianness=e
Win32 only; set output
byte-ordering, where e is one of n[ative],
l[ittle] or b[ig]. Only resources in source-form can be
reordered. Native ordering depends on the system on which
wrc was built. You can see the native ordering by
typing wrc -h.
-E
Preprocess only. The output is written to standard
output if no outputfile was selected. The output is
compatible with what gcc would generate.
-h,
--help
Prints a summary message and
exits.
-i,
--input=file
The name of the input file. If
this option is not used, then wrc will use the first
non-option argument as the input file name. If there are no
non-option arguments, then wrc will read from
standard input.
-I,
--include-dir=file
Add path to include
search directories. Path may contain multiple
directories, separated with ’:’. It is allowed
to specify -I multiple times. Include files are
searched in the order in with the -I options
were specified.
The search is compatible with gcc, in which
’<>’ quoted filenames are searched
exclusively via the -I set path, whereas the
’""’ quoted filenames are first tried
to be opened in the current directory. Also resource
statements with file references are located in the same
way.
-J,
--input-format=format
Sets the input format. Valid
options are ’rc’ or ’rc16’. Setting
the input to ’rc16’ disables the recognition of
win32 keywords.
-l,
--language=lan
Set default language to
lan. Default is the neutral language 0 (i.e.
"LANGUAGE 0, 0").
-m16, -m32,
-m64
Generate resources for 16-bit,
32-bit, respectively 64-bit platforms. The only difference
between 32-bit and 64-bit is whether the _WIN64 preprocessor
symbol is defined.
--nostdinc
Do not search the standard
include path, look for include files only in the directories
explicitly specified with the -I option.
--no-use-temp-file
Ignored for compatibility with
windres.
-o,
-fo,
--output=file
Write output to file.
Default is inputfile.res with .rc stripped or
wrc.tab.res if input is read from standard input.
-O,
--output-format=format
Sets the output format. The
supported formats are po, pot, res, and
res16. If this option is not specified, the format
defaults to res.
In po mode, if an output file name is specified it
must match a known language name, like en_US.po; only
resources for the specified language are output. If no
output file name is specified, a separate .po file is
created for every language encountered in the input.
--pedantic
Enable pedantic warnings.
Notably redefinition of #define statements can be discovered
with this option.
--po-dir=dir
Enable the generation of
resource translations based on mo files loaded from the
specified directory. That directory must follow the gettext
convention, in particular in must contain one .mo file for
each language, and a LINGUAS file listing the available
languages.
-r
Ignored for compatibility with rc.
--preprocessor=program
This option may be used to
specify the preprocessor to use, including any leading
arguments. If not specified, wrc uses its builtin
processor. To disable preprocessing, use
--preprocessor=cat.
-U,
--undefine=id
Undefine preprocessor
identifier id. Please note that only macros defined
up to this point are undefined by this command. However,
these include the special macros defined automatically by
wrc. See also PREPROCESSOR below.
--use-temp-file
Ignored for compatibility with
windres.
-v,
--verbose
Turns on verbose mode
(equivalent to -d 1).
--version
Print version end exit.
availability
wrc is part of the Wine distribution, which is available
through WineHQ, the Wine development headquarters, at
http://www.winehq.org/.
language support
Language, version and characteristics can be bound to all
resource types that have inline data, such as RCDATA. This is an
extension to Microsoft’s resource compiler, which lacks this
support completely. Only VERSIONINFO cannot have version and
characteristics attached, but languages are propagated properly
if you declare it correctly before the VERSIONINFO resource
starts.
Example:
1 RCDATA DISCARDABLE
LANGUAGE 1, 0
VERSION 312
CHARACTERISTICS 876
{
1, 2, 3, 4, 5, "and whatever more data you want"
’00 01 02 03 04 05 06 07 08’
}
preprocessor
The preprocessor is ANSI-C compatible with some of the extensions
of the gcc preprocessor.
The preprocessor recognizes these directives: #include, #define
(both simple and macro), #undef, #if, #ifdef, #ifndef, #elif,
#else, #endif, #error, #warning, #line, # (both null- and
line-directive), #pragma (ignored), #ident (ignored).
The preprocessor sets by default several defines:
RC_INVOKED set to 1
__WRC__ Major version of wrc
__WRC_MINOR__ Minor version of wrc
__WRC_PATCHLEVEL__ Patch level
Win32 compilation mode also sets _WIN32 to 1.
Special macros __FILE__, __LINE__, __TIME__ and __DATE__ are also
recognized and expand to their respective equivalent.
bugs
- The
preprocessor recognizes variable argument macros, but does
not expand them correctly.
- Error reporting should be more precise, as currently
the column and line number reported are those of the next
token.
- Default memory options should differ between win16
and win32.
There is no
support for:
- RT_DLGINCLUDE, RT_VXD, RT_PLUGPLAY and RT_HTML
(unknown format)
- PUSHBOX control is unsupported due to lack of
original functionality.
Fonts are
parsed and generated, but there is no support for the
generation of the FONTDIR yet. The user must supply the
FONTDIR resource in the source to match the FONT
resources.
see also
wine
authors
wrc was
written by Bertho A. Stultiens and is a nearly complete
rewrite of the first wine resource compiler (1994) by Martin
von Loewis. Additional resource-types were contributed
by Ulrich Czekalla and Albert den Haan. Many cleanups by
Dimitrie O. Paun in 2002-2003. Bugfixes have been
contributed by many Wine developers.