[libcamera-devel] [PATCH v2.1 1/2] Documentation: Add predefined macros from config.h to Doxyfile

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Jul 5 14:31:33 CEST 2023


Quoting Laurent Pinchart (2023-07-05 12:40:10)
> On Wed, Jul 05, 2023 at 12:32:53PM +0100, Kieran Bingham wrote:
> > Quoting Laurent Pinchart via libcamera-devel (2023-07-05 09:31:11)
> > > libcamera creates a config.h file with predefined macros, and instructs
> > > the compiler to include it implicitly with the -include argument.
> > > Doxygen has no support for implicit inclusion of headers, but has a
> > > PREDEFINED configuration option for its preprocessor that lists
> > > predefined macros. Populate it with the values from the config_h
> > > configuration data object that is used for generate the config.h file,
> > > to ensure that documentation matches the configuration options libcamera
> > > has been built with.
> > > 
> > > Bump the minimum meson version to 0.57 to use cfg_data.keys().
> > > 
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > > ---
> > > Changes since v2:
> > > 
> > > - Bump the minimum meson version to 0.57.
> > > 
> > > Changes since v1:
> > > 
> > > - Correct indentation and line wrap in the generate Doxyfile
> > > ---
> > >  Documentation/Doxyfile.in | 3 ++-
> > >  Documentation/meson.build | 7 +++++++
> > >  meson.build               | 2 +-
> > >  3 files changed, 10 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
> > > index 1447abdb7d8c..697a14d1dfe2 100644
> > > --- a/Documentation/Doxyfile.in
> > > +++ b/Documentation/Doxyfile.in
> > > @@ -80,6 +80,7 @@ INCLUDE_FILE_PATTERNS  = *.h
> > >  
> > >  PREDEFINED             = __DOXYGEN__ \
> > >                           __cplusplus \
> > > -                         __attribute__(x)=
> > > +                         __attribute__(x)= \
> > > +                        @PREDEFINED@
> > >  
> > >  HAVE_DOT               = YES
> > > diff --git a/Documentation/meson.build b/Documentation/meson.build
> > > index 186461561f8d..d675f368cf79 100644
> > > --- a/Documentation/meson.build
> > > +++ b/Documentation/meson.build
> > > @@ -16,6 +16,13 @@ if doxygen.found() and dot.found()
> > >      cdata.set('TOP_BUILDDIR', meson.project_build_root())
> > >      cdata.set('OUTPUT_DIR', meson.current_build_dir())
> > >  
> > > +    doxygen_predefined = []
> > > +    foreach key : config_h.keys()
> > > +        doxygen_predefined += '@0@=@1@'.format(key, config_h.get(key))
> > > +    endforeach
> > > +
> > > +    cdata.set('PREDEFINED', ' \\\n\t\t\t '.join(doxygen_predefined))
> > > +
> > >      doxyfile = configure_file(input : 'Doxyfile.in',
> > >                                output : 'Doxyfile',
> > >                                configuration : cdata)
> > > diff --git a/meson.build b/meson.build
> > > index 9c1e708131eb..62db8ed8105d 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -1,7 +1,7 @@
> > >  # SPDX-License-Identifier: CC0-1.0
> > >  
> > >  project('libcamera', 'c', 'cpp',
> > > -    meson_version : '>= 0.56',
> > > +    meson_version : '>= 0.57',
> > 
> > Ubuntu LTS is currently 22.04 with meson 0.61.2
> > Debian Bullseye has 0.56.1 but has 1.0.0 is available in backports
> > Fedora 37 is at 1.0.1 ...
> > 
> > So ... I think we're easily good up to 0.61 at the moment.
> 
> And of course the next feature I'd like to use is dependency('dl'),
> which requires 0.62 :-)

It's not 'too' long until 24.04 ... right ?....

> 
> > Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > 
> > >      version : '0.0.5',
> > >      default_options : [
> > >          'werror=true',
> 
> -- 
> Regards,
> 
> Laurent Pinchart


More information about the libcamera-devel mailing list