diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-08-09 03:29:48 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2024-08-16 00:00:28 +0300 |
commit | 48f9660acd51dda1f4dbe778b5b5f9bec0483b34 (patch) | |
tree | 4fc3621ae2a450be348aafcd84c04c862e7418a3 | |
parent | a5f12d2eb35a2fa57a4383869b5e616c3ce1e2ae (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.build | 20 | ||||
-rwxr-xr-x | 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 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) |