[libcamera-devel] [PATCH] meson: Replace hack with usage of '@BASENAME@'

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Dec 7 23:13:13 CET 2023


Quoting Laurent Pinchart via libcamera-devel (2023-12-07 21:43:37)
> Starting with meson 0.59, the custom_target() function substitutes
> '@BASENAME@' in the output parameter with the input file name, with the
> extension removed. This is exactly what we implement manually when
> generating the IPA interface .cpp files.

It's a good job you were sitting down when you discovered that one ;-)

> Furthermore, starting with meson 0.60, the 'name' positional parameter
> to the custom_target() function is optional, and defaults to the
> basename of the output file (including the extension). This is exactly
> the name we compute manually and pass to the function.
> 
> As libcamera requires meson 0.60 or newer, we can depend on those two
> features and drop manual computation of the base name. This fixes a
> warning with recent meson versions that complain that passing a file
> object to the format() function is a broken feature:
> 
> WARNING: Broken features used:
>  * 1.3.0: {'str.format: Value other than strings, integers, bools, options, dictionaries and lists thereof.'}
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

It's a nice bit of magic.

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> ---
>  src/libcamera/ipa/meson.build | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/src/libcamera/ipa/meson.build b/src/libcamera/ipa/meson.build
> index 4469524060de..ef73b3f98816 100644
> --- a/src/libcamera/ipa/meson.build
> +++ b/src/libcamera/ipa/meson.build
> @@ -3,13 +3,10 @@
>  libcamera_ipa_interfaces = []
>  
>  foreach file : ipa_mojom_files
> -    name = '@0@'.format(file).split('/')[-1].split('.')[0]
> -
>      # {pipeline}_ipa_interface.cpp
>      libcamera_ipa_interfaces += \
> -        custom_target(name + '_ipa_interface_cpp',
> -                      input : file,
> -                      output : name + '_ipa_interface.cpp',
> +        custom_target(input : file,
> +                      output : '@BASENAME at _ipa_interface.cpp',
>                        command : [
>                            mojom_docs_extractor,
>                            '-o', '@OUTPUT@', '@INPUT@'
> 
> base-commit: 1c56d2a2cd2dcca86272675e21bbb1770d32db1f
> -- 
> Regards,
> 
> Laurent Pinchart
>


More information about the libcamera-devel mailing list