[PATCH 06/10] utils: codegen: gen-header.sh: Generate libcamera.h based on meson.build
Dan Scally
dan.scally at ideasonboard.com
Thu Aug 15 00:19:46 CEST 2024
On 09/08/2024 01:59, Laurent Pinchart wrote:
> 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>
> ---
Makes sense to me:
Reviewed-by: Daniel Scally <dan.scally 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)
>
More information about the libcamera-devel
mailing list