Boost logo

Boost-Build :

From: Alexey Pakhunov (alexeypa_at_[hidden])
Date: 2005-05-18 13:25:45

Reece Dunn wrote:

> Can you get it so that it generates the other files as well? The proxy stubs
> (%_p.c), dlldata (%_dlldata.c) and type libraries (%.tlb).

.tlb is generated already. I forgot to mention it. :)

I'm going to add proxy generation as well. Basically my goal is allow
building COM servers like wizard-generated project in Visual Studio does.

> Does the following work:
> lib mycomdll : myidl.idl mycomdll.cpp ;
> // mycomdll.cpp
> #include <initguid.h>
> #include "myidl.h"
> #include "myidl_i.c"
> // ...

Currently you need not include "myidl_i.c". It will be compiled and
linked automatically. I did nothing to achieve it. This works because of
the way how Boost.Build build dependencies.

> You need to ensure that the IDL file is processed first (so that the source
> files can use the generated files) and that the output path is added to the
> include path.

This also works. See

> This might get complicated if you have an exe that uses the generated files,
> e.g.


> This would then add <include>bin/msvc-7.1/release or wherever mycomdll is
> being built to in both mycomdll and driver. However, it may need something
> to indicate that it is a target path, e.g. <include-target>mycomdll.

See the same link above. It should work without additional efforts.

> It would also be a good idea to provide support for CORBA IDL compilation,
> although I don't know enough about CORBA to know what needs to be changed.
> What would happen if you have a CORBA IDL file and use:
> lib corbaidl : corba.idl ... ;

Honestly I know nothing about CORBA and CORBA idl. In order to support
CORBA .idl we will need (probably) to modify the scanner and use
separate toolset for building CORBA .idl files.

> with msvc?

Well, I don't know is it really possible but it can look like this:

lib midl_lib : a.idl<toolset>msvc ;
lib corba_lib : b.idl<toolset>corba ;

Best regards,
Alexey Pakhunov.


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at