Boost logo

Boost-Build :

Subject: [Boost-build] doxygen.jam generates wrong INPUTs in doxyfile
From: Simon Cooke (sjcfwd_at_[hidden])
Date: 2014-01-30 10:21:32


Given the following simple project, the doxygen target fails to find
the source file when invoked from the Jamroot directory as 'b2
src//file.html':

*** Jamroot:
project : build-dir _build ;

*** src/Jamfile:
import doxygen : doxygen ;
doxygen file.html : file.h ;

*** src/file.h:
/* empty */

... giving...

Warning: tag INPUT: input source `file.h' does not exist

In the doxyfile, the following line is generated:

INPUT = "file.h"

which is invalid when doxygen is invoked from the parent directory.

In doxygen.jam (line 310) this is currently generated as follows:

for local header in $(sources:G=)
{
    header = [ translate-path $(header) ] ;
    headers += \"$(header)\" ;
}

The following change seems to fix the problem for me:

for local header in $(sources)
{
    header = [ path.native [ path.root [ path.make $(header:G=) ]
                                           [ on $(header) return
$(SEARCH) ] ] ] ;
    header = [ translate-path $(header) ] ;
    headers += \"$(header)\" ;
}

Is this the correct way to fix this issue?

Thanks,
Simon


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