[libcamera-devel] [PATCH] py: meson: use files() for custom_target input files

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Wed May 11 11:25:02 CEST 2022


On 11/05/2022 12:06, Laurent Pinchart wrote:
> Hi Tomi,
> 
> Thank you for the patch.
> 
> On Wed, May 11, 2022 at 11:23:46AM +0300, Tomi Valkeinen wrote:
>> Use files() for the input files for the custom_target(). I believe the
>> current code works, but perhaps it is safer to use files() here.
> 
> And I think it's more in line with the meson recommendations.
> 
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
>> ---
>>   src/py/libcamera/meson.build | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/py/libcamera/meson.build b/src/py/libcamera/meson.build
>> index 0cd7c75b..3f7ddf1d 100644
>> --- a/src/py/libcamera/meson.build
>> +++ b/src/py/libcamera/meson.build
>> @@ -17,10 +17,10 @@ pycamera_sources = files([
>>       'pymain.cpp',
>>   ])
>>   
>> -gen_input_files = [
>> -    meson.project_source_root() / 'src' / 'libcamera' / 'control_ids.yaml',
>> +gen_input_files = files(
>> +    '../../libcamera/control_ids.yaml',
>>       'pyenums_generated.cpp.in',
>> -]
>> +)
> 
> Interesting, I didn't know files() could take a list of files, as
> opposed to an array. We always write
> 
> gen_input_files = files([
>      '../../libcamera/control_ids.yaml',
>      'pyenums_generated.cpp.in',
> ])
> 
> I'd do the same here for consistency, and remove the [] in a global
> patch separately if desired. Is that OK with you ?

It is used without an array in include/libcamera/meson.build and 
src/libcamera/meson.build. I think I used one of those as a reference, 
and didn't even notice the array use elsewhere.

Meson docs do not even mention that files() can take an array. But I can 
add the array, it's used in that way also a bit above when defining the 
source files.

As a side note, using files() feels a bit silly to me. Afaics the point 
of files() is to create a file object when you want to use those files 
in some other meson build file, i.e. you want to "export" the file to 
other meson files. Here the list of files is "private" to this 
particular meson build file.

Using files() for local source files does not provide any value that I 
can see.

And if we use files() for the sources, shouldn't we also use files() for 
the output for the custom_target()?

  Tomi


More information about the libcamera-devel mailing list