[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