WIDL(1)
โจ WIDL(1) โ the Wine Interface Definition Language compiler โจ
okay bestie, welcome to widl, the Wine Interface Definition Language (IDL) compiler ๐ this lil diva lives in the Wine Developers Manual and she is so much cooler than she looks. she eats IDL files for breakfast and spits out headers, stubs, typelibs and UUIDs like it's nothing. no cap. let's get into it ๐ซถ
๐ธ NAME ๐ธ
widl โ the Wine Interface Definition Language (IDL) compiler. that's her. that's the whole name. iconic behavior honestly.
๐ SYNOPSIS ๐
x86_64-w64-mingw32ucrt-widl [options] IDL_file
x86_64-w64-mingw32ucrt-widl [options] --dlldata-only name1 [name2...]
two moods, two modes. pick your fighter โจ
๐ DESCRIPTION ๐
so here's the tea, bestie. when you run widl with no options at all, she goes feral (affectionate) and generates a header file, and possibly client and server stubs, proxy and dlldata files, a typelib, and a UUID file โ all depending on what's actually inside your IDL file. she reads the room and delivers accordingly, main character energy fr fr ๐
BUT. if you pass any of the options -c, -h, -p, -s, -t, -u or --local-stubs, she only generates the files you asked for and nothing else. no extras, no surprises, she's locked in ๐ฅ
and when you hit her with --dlldata-only? she generates only a dlldata file, and it will contain a list of the names you passed as arguments. the way this file usually gets updated is: every time widl runs, she reads any existing dlldata file, and if necessary regenerates it with the same list of names โ but with the present proxy file included. lowkey elegant ๐
oh and btw โ run widl with no arguments at all and she'll just print a help message. she's polite like that ๐
โจ OPTIONS โจ
๐ General options ๐
-Vโ Print the version number and exit. short, sweet, slay.-o,--output=nameโ Set the name of the output file. When you're generating multiple output files, this only sets the base name; the respective output files are then namedname.h,name_p.c, etc. yes bestie, she'll do the naming math for you ๐งฎ-b cpu-manufacturer[-kernel]-osโ Set the target architecture when cross-compiling. The target specification is in the standard autoconf format, as returned byconfig.sub. very demure, very autoconf ๐
๐ฆ Header options ๐ฆ
-hโ Generate header files. The default output filename isinfile.h.--oldnamesโ Use old naming conventions. retro vibes, respectfully ๐
๐ซ Type library options ๐ซ
-tโ Generate a type library. The default output filename isinfile.tlb. If the output file name ends in.res, a binary resource file containing the type library is generated instead. plot twist โจ-m32,-m64โ Generate a Win32 or Win64 type library respectively. pick a lane, bestie ๐ซถ
๐ฎ UUID file options ๐ฎ
-uโ Generate a UUID file. The default output filename isinfile_i.c. the_iis for iconic. (jk it's for interface, but still.) ๐
๐ Proxy/stub generation options ๐
-cโ Generate a client stub file. The default output filename isinfile_c.c.-Osโ Generate inline stubs.-Oiโ Generate old-style interpreted stubs.-Oif,-Oic,-Oicfโ Generate new-style fully interpreted stubs. the trio. the girlies. the moment ๐ฅ-pโ Generate a proxy. The default output filename isinfile_p.c.--prefix-all=prefixโ Prefix to put on the name of both client and server stubs. two birds, one prefix.--prefix-client=prefixโ Prefix to put on the name of client stubs.--prefix-server=prefixโ Prefix to put on the name of server stubs.-sโ Generate a server stub file. The default output filename isinfile_s.c.--win32,--win64โ Only generate 32-bit or 64-bit code respectively. the default is to generate both 32-bit and 64-bit versions into the same destination file. multitasking queen ๐--rtโ Enable additional language extensions for IDL to support WinRT.
๐ Registration script options ๐
-rโ Generate a registration script. The default output filename isinfile_r.rgs. If the output file name ends in.res, a binary resource file containing the script is generated instead.
๐ Dlldata file options ๐
--dlldata-only name1 [name2...]โ Regenerate the dlldata file from scratch using the specified proxy names. The default output filename isdlldata.c. fresh start, clean slate, we love a reset ๐ง
๐ Preprocessor options ๐
-I pathโ Add a header search directory topath. Multiple search directories are allowed. stack 'em up ๐-D id[=val]โ Define preprocessor macroidwith valueval.-Eโ Preprocess only.-Nโ Do not preprocess input.
๐ญ Debug options ๐ญ
-Wโ Enable pedantic warnings. she's watching. she's judging. lovingly ๐-d nโ Set debug level to the non negative integern. If prefixed with0x, it will be interpreted as an hexadecimal number. For the meaning of values, see the DEBUG section. (it's right below bestie, keep scrolling ๐)
๐ซถ Miscellaneous options ๐ซถ
-app_configโ Ignored, present for midl compatibility. she's just standing there. existing. for compatibility. queen behavior honestly ๐--local-stubs=fileโ Generate empty stubs forcall_as/localmethods in an object interface and write them tofile.
๐ DEBUG ๐
Debug level n is a bitmask with the following meaning โ so you can stack these like accessories, bestie:
0x01โ Tell which resource is parsed (verbose mode)0x02โ Dump internal structures0x04โ Create a parser trace (yydebug=1)0x08โ Preprocessor messages0x10โ Preprocessor lex messages0x20โ Preprocessor yacc trace
๐ BUGS ๐
Bugs can be reported on the Wine bug tracker. she's not perfect, she's just a compiler ๐
๐ AUTHORS ๐
widl was originally written by Ove Kรฅven. It has been improved by Rob Shearman, Dan Hipschman, and others. For a complete list, see the git commit logs. This man page was originally written by Hannu Valtonen and then updated by Dan Hipschman. absolute legends, all of them ๐
๐ AVAILABILITY ๐
widl is part of the Wine distribution, which is available through WineHQ, the Wine development headquarters. go get her ๐ซถ
๐ฆ SEE ALSO ๐ฆ
Wine documentation and support.
okay bestie that's the whole page ๐ this came from the MinGW-w64 edition of the manual, dated October 2007 โ yes she's vintage, yes she still serves. go compile something gorgeous, and remember: no cap, widl ate ๐โจ๐
๐ฆ where this page comes from
- debian trixie: mingw-w64-tools 12.0.0-5 ยท ZPL-2.1
- ubuntu resolute: mingw-w64-tools 13.0.0-2ubuntu1 ยท ZPL-2.1
- ubuntu stonking: mingw-w64-tools 13.0.0-2ubuntu1 ยท ZPL-2.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms