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

Message ID 20230704234422.11863-2-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • libcamera: Add an application to verify IPA module signatures
Related show

Commit Message

Laurent Pinchart July 4, 2023, 11:44 p.m. UTC
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.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
Changes since v1:

- Correct indentation and line wrap in the generate Doxyfile
---
 Documentation/Doxyfile.in | 3 ++-
 Documentation/meson.build | 7 +++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

Patch
diff mbox series

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)