[libcamera-devel] [PATCH] meson: Only build pipeline handlers needed in the host architecture
Javier Martinez Canillas
javierm at redhat.com
Sat Dec 24 02:32:07 CET 2022
Hello Laurent,
Thanks a lot for your feedback.
On 12/24/22 02:01, Laurent Pinchart wrote:
> Hi Javier,
>
> Thank you for the patch.
>
> On Fri, Dec 23, 2022 at 09:22:29AM +0100, Javier Martinez Canillas wrote:
>> By default all pipeline handlers are built, regardless on whether these
>> are needed in the host architecture or not. It makes more sense to build
>> only the pipeline handlers that will be used for the given architecture.
>>
>> Let's do that by default now, but still allow to build the other pipeline
>> handlers if needed, by using the `pipelines` meson option. For example:
>
> As long as CI systems can build all pipeline handlers, that's fine with
> me. We may start getting somes patches that introduce compilation
> breakages on pipeline handlers that are not compile-tested by
> developers, but we can catch that in CI.
>
Agreed.
>> +if pipelines.contains('auto')
>> + host_cpu = host_machine.cpu_family()
>> + if host_cpu == 'x86' or host_cpu == 'x86_64'
>> + pipelines = ['ipu3']
>> + elif host_cpu == 'aarch64'
>> + pipelines = ['imx8-isi', 'ipu3', 'raspberrypi', 'rkisp1']
>
> ipu3 is only for x86.
>
Yes, that's a left over since I didn't meant to include it for aarch64.
>> + elif host_cpu == 'arm'
>> + pipelines = ['raspberrypi']
>> + endif
>> +
>> + # Always include the simple and uvcvideo pipeline handlers.
>> + pipelines += ['simple', 'uvcvideo']
>
> The simple pipeline handler is only useful on ARM platforms (both 32 and
> 64 bits) at the moment.
>
Ah, good to know. I'll adjust that accordingly.
>> +endif
>> +
>> if get_option('test') and 'vimc' not in pipelines
>> message('Enabling vimc pipeline handler to support tests')
>> pipelines += ['vimc']
>> diff --git a/meson_options.txt b/meson_options.txt
>> index 1ba6778ce257..23505805de41 100644
>> --- a/meson_options.txt
>> +++ b/meson_options.txt
>> @@ -37,8 +37,10 @@ option('lc-compliance',
>>
>> option('pipelines',
>> type : 'array',
>> - choices : ['imx8-isi', 'ipu3', 'raspberrypi', 'rkisp1', 'simple', 'uvcvideo', 'vimc'],
>> - description : 'Select which pipeline handlers to include')
>> + value : ['auto'],
>> + choices : ['auto', 'imx8-isi', 'ipu3', 'raspberrypi', 'rkisp1', 'simple', 'uvcvideo', 'vimc'],
>
> This is getting long, let's wrap it:
>
OK.
[...]
>> + description : '''Select which pipeline handlers to build. If this is set to auto, all
>> + the pipelines applicable to the target architecture will be built.''')
>
> The spaces in the description cause weird-looking output depending on
> the terminal width:
>
> pipelines [imx8-isi, ipu3, raspberrypi, [auto, imx8-isi, ipu3, Select which pipeline handlers to build. If this is set to auto,
> rkisp1, simple, uvcvideo, vimc] raspberrypi, rkisp1, simple, all the pipelines applicable to the
> uvcvideo, target architecture will be built.
> vimc]
>
> You can write
>
> description : '''Select which pipeline handlers to build. If this is set
> to auto, all the pipelines applicable to the target architecture will be built.''')
>
Right. I'll do that. Thanks!
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
More information about the libcamera-devel
mailing list