Is there a way to specify, on a project or target basis, using the requirements / feature syntax, that a specific tool should be used to process an idl file?

I am developing a cross platform Firefox extension that includes a XPCOM / C++ component. I have implemented an xpidl.jam tool that invokes Mozilla's xpidl tool to compile IDL files into headers and type libs.

To make this work, I have renamed my Firefox IDL source files as .xpidl. I cannot register a new type with the IDL extension, at least not when building on the Windows platform, since midl.jam already registers the type for the Microsoft IDL compiler.

I can work this way, but it made me wonder about the more general problem -- say, if you had to build a multitude of projects, some using COM / midl, others using XPCOM / xpidl, and still others using CORBA / corba-idl.

Michael