[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:29:20 CEST 2024
Ah, but I forgot to mention:
On 14/08/2024 23:19, Dan Scally wrote:
>
> 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
s/generate/generated
>> name of their templates.
>>
>> Drop that assumption and make the libcamera.h generation based on the
>> libcamera public headers listed in meson.build.
perhaps "and base the libcamera.h generation on the"?
>> 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