summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-08-09 03:29:48 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-08-16 00:00:28 +0300
commit48f9660acd51dda1f4dbe778b5b5f9bec0483b34 (patch)
tree4fc3621ae2a450be348aafcd84c04c862e7418a3
parenta5f12d2eb35a2fa57a4383869b5e616c3ce1e2ae (diff)
utils: codegen: gen-header.sh: Generate libcamera.h based on meson.build
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 generated header file names and the name of their templates. Drop that assumption and base the libcamera.h generation 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@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r--include/libcamera/meson.build20
-rwxr-xr-xutils/codegen/gen-header.sh7
2 files changed, 13 insertions, 14 deletions
diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
index 36de1c2a..87b9a941 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 d4692758..c78f0859 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)