WMC(1)

πŸ“¦ version 6.0, in ubuntu jammy

πŸ’… WMC πŸ’…

okay so bestie, welcome to the Wine Developers Manual page for wmc, aka the Wine Message Compiler β€” yes she's serving compiler energy and yes she's iconic πŸŽ€


✨ NAME ✨

wmc β€” the Wine Message Compiler πŸ¦‹


🌸 SYNOPSIS 🌸

wmc [options] [inputfile]

πŸ’– DESCRIPTION πŸ’–

So wmc takes the messages in inputfile and compiles them into a FormatMessage[AW] compatible format, all wrapped up cozy in a resourcescript format. no cap. She can spit the data out either as a standard .bin formatted binary file, or she can generate inline resource data instead β€” pick your vibe πŸ’…

wmc takes only one inputfile as an argument (peep the BUGS section for the tea on that one πŸ™ˆ). That inputfile normally has the extension .mc. If you don't give her an inputfile, she reads the messages from standard input. And if you don't tell her where to put the output with -o, she'll write it to inputfile.{rc,h}. If there was no inputfile at all, the outputfile gets named wmc.tab.{rc,h} instead. lowkey organized ✨


🌈 OPTIONS 🌈

  • -B x β€” set the output byte-order, where x is one of n[ative], l[ittle], or b[ig]. default is n[ative].
  • -c β€” sets the 'custom-bit' in the message-code values.
  • -d β€” NON-FUNCTIONAL πŸ’€ use decimal values in output.
  • -D β€” sets the debug flag. this gives you a parser trace and a lot of extra messages. it's giving yapper.
  • -h, --help β€” print an informative usage message and exit.
  • -H file β€” write the headerfile to file. default is inputfile.h.
  • -i β€” inline messagetable(s). this option skips the generation of all .bin files and writes all output into the .rc file instead. this encoding is parsable with wrc(1). obsessed 🫢
  • *--nls-dir=directory* β€” specify the directory to search for the NLS files that hold the codepage mapping tables.
  • -o, --output=file β€” output to file. default is inputfile.rc.
  • -O, --output-format=format β€” set the output format. supported formats are rc (the default), res, and pot.
  • -P, --po-dir=directory β€” enable the generation of resource translations based on po files loaded from the specified directory. that directory must follow the gettext convention β€” in particular it must contain one .po file for each language, plus a LINGUAS file listing the available languages. read the requirements bestie, she's strict πŸ’…
  • -u β€” assume the input file is in Unicode or UTF-8 format and skip codepage conversions.
  • -v β€” show all supported codepages and languages.
  • -V, --version β€” print version and exit.
  • -W, --pedantic β€” enable pedantic warnings. she's watching πŸ‘€

πŸ¦‹ EXTENSIONS πŸ¦‹

The original syntax got extended so codepages are handled way more smoothly. normally, codepages are based on the DOS codepage from the language setting. the original syntax only lets you set the destination codepage. but that's simply not enough for non-DOS systems that don't use unicode source-files. like, be serious 😭

So a new keyword Codepages was introduced, and it sets both input and output codepages to literally whatever you want, for each language. the syntax is similar to the other constructs:

Codepages '=' '(' language '=' cpin ':' cpout ... ')'

The language is the numerical language-ID, or the alias set with LanguageNames. the input codepage cpin and output codepage cpout are the numerical codepage IDs. you can have multiple mappings inside the definition, and the definition itself may occur more than once. slay ✨


πŸŽ€ AUTHORS πŸŽ€

wmc was written by Bertho A. Stultiens. king behavior πŸ‘‘


πŸ’€ BUGS πŸ’€

  • the message compiler should be able to have multiple input files and combine them into one output file. that would enable splitting languages into separate files. (currently she cannot β€” hence the one-inputfile thing from earlier, iykyk πŸ™ˆ)
  • decimal output is completely lacking. don't know whether it should be implemented, because it's a, well, non-informative format change. it is recognized on the commandline for some form of compatibility though. so it's there, it just doesn't do the thing πŸ’€
  • bugs can be reported on the Wine bug tracker.

🌟 AVAILABILITY 🌟

wmc is part of the Wine distribution, which is available through WineHQ, the Wine development headquarters. main character distribution fr fr πŸ‘‘


πŸ‘‘ SEE ALSO πŸ‘‘

wine(1), wrc(1), Wine documentation and support.


okay that's the whole page bestie, go compile something cute πŸ’–

this has been your girl, running Wine 6.0, from way back in October 2005 β€” yeah she's vintage and she still ate πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from