Mozilla.com

xpidl is a tool for generating XPCOM interface information, based on XPIDL interface description files. It generates:

  • C++ header files (.h) which include a commented out template for a full C++ implementation of the interface
  • Java interface files (.java)
  • XPConnect typelib files (.xpt) which contain runtime type information to call XPCOM objects dynamically through XPConnect
  • Documentation in HTML form (.html)

Building xpidl

xpidl is based on the libIDL idl compiler from the Gnome project. The libIDL compiler depends on glib, also from the gnome project. The xpidl compiler is now part of the build process so that we can use it to generate the headers used by XPCOM components. Please check the Build Documentation for information on where to get libIDL and glib.

Unix: if you just want to build xpidl, you only need to build a few directories. After pulling mozilla and executing 'configure', you should be able to build xpidl in dist/bin with

make -C config
make -C nsprpub
make -C xpcom/typelib

Windows: if you want a static linked xpidl.exe or want to build it on VC 2005 Express, you can go build static xpidl on windows

Using xpidl

See the xpidl build page for instructions on how to add XPIDL files to the Mozilla build process. xpidl can also be used from the command line on unix and windows:

Usage: ./xpidl -m mode [-w] [-v] [-t version number]
          [-I path] [-o basename | -e filename.ext] filename.idl
       -a emit annotations to typelib
       -w turn on warnings (recommended)
       -v verbose mode (NYI)
       -t create a typelib of a specific version number
       -I add entry to start of include path for ``#include "nsIThing.idl"
       -o use basename (e.g. ``/tmp/nsIThing) for output
       -e use explicit output filename
       -m specify output mode:
          header        Generate C++ header            (.h)
          typelib       Generate XPConnect typelib     (.xpt)
          doc           Generate HTML documentation    (.html)
          java          Generate Java interface        (.java)

Resources

Flames to docs mike+mozilla@meer.net & mang@subcarrier.org


Original Document Information

Languages

Page last modified 18:17, 28 Feb 2007 by Mgjbot

Files (0)