[libcamera-devel] [PATCH v2.1 1/2] Documentation: Add predefined macros from config.h to Doxyfile
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Jul 5 13:40:10 CEST 2023
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 :-)
> 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