XPIDL:xpidl
From MDC
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)
Contents |
[edit] 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
[edit] 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)
[edit] Resources
- Open bugs against xpidl.
Flames to docs mike+mozilla@meer.net & mang@subcarrier.org
[edit] Original Document Information
- Author(s): mike+mozilla@meer.net, mang@subcarrier.org
- Last Updated Date: May 29, 2002
- Copyright Information: Copyright (C) mike+mozilla@meer.net, mang@subcarrier.org