Boost logo

Boost-Build :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-10-15 19:15:51


Alexey Pakhunov wrote:
> Two more fixed in the patch:
> - the MIDL has been fixed a bit. Now it detects both C preprocessor and
> MIDL directives: #include, import and importlib;
> - response file is used in the 'msvc.compile.idl' actions block.

Great! :)

> Reece Dunn wrote:
>
>>[1] If you have a projects and a projects/mycomobj directory, where projects
>>has:
>> build-project mycomobj ;
>>and mycomobj has an IDL target that contains
>> mycomobj/core/core.idl
>>and
>> mycomobj/advanced/advanced.idl
>>where advanced.idl imports core.idl, it will work if you build from
>>mycomobj, everything builds fine, but if you build from projects, it cannot
>>locate core.idl.
>
> Well, the only thing I found is that the 'import' directive fails if the
> filename is relative:
>
> import "../core/core.idl";

Yes. I am importing them relatively like the above.

> Absolute path works. Can you send me your project tree?

You don't need the project tree - you have the basic setup in place
already. I *really* want to avoid absolute paths as I am developing the
project with the help of the Perforce source control system and want it
to be used anywhere.

I suppose I could try adding an <include> to the project:

myproject/Jamfile
project myproject : : requirements <include>. ;

> # Microsoft Interface Definition Language (MIDL) related routines
>
> actions compile.idl
> {
> midl /nologo /U$(UNDEFS) /D$(DEFINES) $(MIDLFLAGS) /I"$(INCLUDES)" ...
> }
>
> RCS file: /cvsroot/boost/boost/tools/build/v2/tools/msvc.jam,v
> +actions compile.idl bind RSP
> +{
> + $(.IDL) /nologo /U$(UNDEFS) $(MIDLFLAGS) /tlb "$(<[1]:W)" ...
> +}

Why are /D$(DEFINES) and /I"$(INCLUDES)" missing from the msvc.jam IDL
action?

More comments will follow when I have had a chance to review the patch.

- Reece

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk