WIDL(1)

πŸ“¦
version 13.0.0 Β· 2 versions
, in debian trixie, ubuntu resolute, ubuntu stonking

πŸ’… WIDL(1) β€” the Wine Developers Manual, but make it cute

okay so bestie, welcome to widl, the Wine Interface Definition Language (IDL) compiler πŸ“. This is from the Wine Developers Manual, and honestly? she's iconic. Let's get into it.


✨ SYNOPSIS ✨

x86_64-w64-mingw32-widl [options] IDL_file
x86_64-w64-mingw32-widl [options] --dlldata-only name1 [name2...]

🌸 DESCRIPTION 🌸

So here's the vibe. When you run this with no options at all, widl is gonna generate a header file β€” and possibly client and server stubs, proxy and dlldata files, a typelib, and a UUID file too. All of that depends on what's actually inside your IDL file, okay? She reads the room. πŸ’–

But the second you pass any of -c, -h, -p, -s, -t, -u or --local-stubs, she switches up: widl will only generate the files you asked for, and no others. No extras, no surprises. periodt.

Then there's --dlldata-only, and with that one widl will only generate a dlldata file, and it's gonna contain a list of the names you passed as arguments. The usual way this file gets updated: every time widl is run, it reads whatever dlldata file already exists, and if it needs to, it regenerates it with the same list of names β€” except now the present proxy file is included in there too. πŸ¦‹

And if you run her with zero arguments? She just prints a help message. She's helpful like that, no cap.


πŸ‘‘ OPTIONS πŸ‘‘

General options (the basics, bestie)

  • -V β€” Print the version number and dip. That's it, that's the whole job. ✌️
  • -o, --output=name β€” Sets the name of the output file. Now listen: when multiple output files are being generated, this only sets the base name, and then the respective output files get named name.h, name_p.c, etc. So don't be confused when you see a whole little family of files. 🌈
  • -b cpu-manufacturer[-kernel]-os β€” Set the target architecture when cross-compiling. The target spec is in the standard autoconf format, exactly like what config.sub returns. iykyk.

Header options

  • -h β€” Generate header files. The default output filename is infile.h. πŸŽ€
  • --oldnames β€” Use old naming conventions. Throwback energy, honestly.

Type library options

  • -t β€” Generate a type library. Default output filename is infile.tlb. But heads up: if the output file name ends in .res, then a binary resource file containing the type library gets generated instead. Plot twist. πŸ’€
  • -m32, -m64 β€” Generate a Win32 or Win64 type library respectively. Pick your fighter.

UUID file options

  • -u β€” Generate a UUID file. The default output filename is infile_i.c. ⭐

Proxy/stub generation options

  • -c β€” Generate a client stub file. Default output filename is infile_c.c.
  • -Os β€” Generate inline stubs.
  • -Oi β€” Generate old-style interpreted stubs.
  • -Oif, -Oic, -Oicf β€” Generate new-style fully interpreted stubs.
  • -p β€” Generate a proxy. The default output filename is infile_p.c.
  • --prefix-all=prefix β€” Prefix to put on the name of both client and server stubs. Two for one, slay.
  • --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 is infile_s.c.
  • --win32, --win64 β€” Only generate 32-bit or 64-bit code respectively. And ngl, the default here is to generate both the 32-bit and 64-bit versions into the same destination file. So if you're wondering why your file is doing the most, that's why. πŸ™ˆ
  • --rt β€” Enable additional language extensions for IDL to support WinRT. Fancy.

Registration script options

  • -r β€” Generate a registration script. Default output filename is infile_r.rgs. But again, watch out: if the output file name ends in .res, then 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 is dlldata.c.

Preprocessor options

  • -I path β€” Add a header search directory to path. And you can stack these β€” multiple search directories are allowed. 🫢
  • -D id[=val] β€” Define preprocessor macro id with value val.
  • -E β€” Preprocess only. Nothing more, nothing less.
  • -N β€” Do not preprocess input. She trusts you.

Debug options

  • -W β€” Enable pedantic warnings. She will be in your business, but lovingly.
  • -d n β€” Set debug level to the non-negative integer n. If it's prefixed with 0x, it gets interpreted as a hexadecimal number. For what all those values actually mean, go look at the DEBUG section down below. πŸ‘‡

Miscellaneous options

  • -app_config β€” Ignored, present for midl compatibility. She's just here for the vibes, standing in the corner, not doing anything. πŸ’€
  • --local-stubs=file β€” Generate empty stubs for call_as/local methods in an object interface and write them to file.

πŸ”₯ DEBUG πŸ”₯

Debug level n is a bitmask, and here's the whole breakdown:

  • 0x01 β€” Tell which resource is parsed (verbose mode)
  • 0x02 β€” Dump internal structures
  • 0x04 β€” Create a parser trace (yydebug=1)
  • 0x08 β€” Preprocessor messages
  • 0x10 β€” Preprocessor lex messages
  • 0x20 β€” Preprocessor yacc trace

πŸ’€ BUGS πŸ’€

Bugs can be reported on the Wine bug tracker. If you found one, tell on her β€” she can take it, she wants to grow. 😭


πŸ’œ 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. Give them their flowers. πŸ’


🌈 AVAILABILITY 🌈

widl is part of the Wine distribution, which is available through WineHQ, the Wine development headquarters.


πŸ¦‹ SEE ALSO πŸ¦‹

Wine documentation and support.


okay that's the whole page, you're all caught up bestie πŸ’– this cutie comes to you from MinGW-w64, dated October 2007 β€” yes she's an elder but she ate and left no crumbs. go compile something iconic, mwah πŸŽ€βœ¨

πŸ“¦ where this page comes from