Message ID | 20240809005914.20662-7-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
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@ideasonboard.com> > --- Makes sense to me: Reviewed-by: Daniel Scally <dan.scally@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) >
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@ideasonboard.com> >> --- > > Makes sense to me: > > Reviewed-by: Daniel Scally <dan.scally@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)
On Fri, Aug 09, 2024 at 03:59:10AM +0300, 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@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@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) > > --
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)
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@ideasonboard.com> --- include/libcamera/meson.build | 20 ++++++++++---------- utils/codegen/gen-header.sh | 7 +++---- 2 files changed, 13 insertions(+), 14 deletions(-)