[PATCH 06/10] utils: codegen: gen-header.sh: Generate libcamera.h based on meson.build
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Aug 9 02:59:10 CEST 2024
The libcamera.h header is a top-level library header that contains every
other libcamera header. It is currently generated by listing the files
in include/libcamera/ and dropping the .in suffix from template files.
This assumes a 1:1 mapping between generate header file names and the
name of their templates.
Drop that assumption and make the libcamera.h generation based on the
libcamera public headers listed in meson.build. This makes the
libcamera.h header generation more future-proof.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
include/libcamera/meson.build | 20 ++++++++++----------
utils/codegen/gen-header.sh | 7 +++----
2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
index 36de1c2a393c..87b9a9412fe7 100644
--- a/include/libcamera/meson.build
+++ b/include/libcamera/meson.build
@@ -107,16 +107,6 @@ formats_h = custom_target('formats_h',
install_dir : libcamera_headers_install_dir)
libcamera_public_headers += formats_h
-# libcamera.h
-libcamera_h = custom_target('gen-header',
- input : 'meson.build',
- output : 'libcamera.h',
- command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],
- install : true,
- install_dir : libcamera_headers_install_dir)
-
-libcamera_public_headers += libcamera_h
-
# version.h
version = libcamera_version.split('.')
libcamera_version_config = configuration_data()
@@ -129,3 +119,13 @@ version_h = configure_file(input : 'version.h.in',
configuration : libcamera_version_config,
install_dir : libcamera_headers_install_dir)
libcamera_public_headers += version_h
+
+# libcamera.h
+libcamera_h = custom_target('gen-header',
+ input : 'meson.build',
+ output : 'libcamera.h',
+ command : [gen_header, '@OUTPUT@', libcamera_public_headers],
+ install : true,
+ install_dir : libcamera_headers_install_dir)
+
+libcamera_public_headers += libcamera_h
diff --git a/utils/codegen/gen-header.sh b/utils/codegen/gen-header.sh
index d4692758eeb4..c78f085992ef 100755
--- a/utils/codegen/gen-header.sh
+++ b/utils/codegen/gen-header.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-src_dir="$1"
-dst_file="$2"
+dst_file="$1"
+shift
cat <<EOF > "$dst_file"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
@@ -16,9 +16,8 @@ cat <<EOF > "$dst_file"
EOF
-headers=$(for header in "$src_dir"/*.h "$src_dir"/*.h.in ; do
+headers=$(for header in "$@" ; do
header=$(basename "$header")
- header="${header%.in}"
echo "$header"
done | sort)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list