[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 13:32:53 CEST 2023


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.

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