From 0a8ac1ee06a47079e5272656be4653b1b12916ef Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 24 Dec 2022 11:28:28 +0100 Subject: meson: Only build pipeline handlers needed in the host architecture 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, on a x86-64 platform: $ meson build ... Configuration Enabled pipelines : ipu3 uvcvideo Enabled IPA modules : ipu3 ... $ meson build -Dpipelines="ipu3,raspberrypi,rkisp1" -Dtest=true ... Configuration Enabled pipelines : ipu3 raspberrypi rkisp1 vimc Enabled IPA modules : ipu3 raspberrypi rkisp1 vimc ... Suggested-by: Kieran Bingham Signed-off-by: Javier Martinez Canillas Reviewed-by: Umang Jain Reviewed-by: Paul Elder Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham Signed-off-by: Laurent Pinchart --- meson.build | 17 +++++++++++++++++ meson_options.txt | 14 ++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index d02f9917..df9099d0 100644 --- a/meson.build +++ b/meson.build @@ -164,6 +164,23 @@ liblttng = dependency('lttng-ust', required : get_option('tracing')) # are enabled. pipelines = get_option('pipelines') +if pipelines.contains('auto') + host_cpu = host_machine.cpu_family() + pipelines = [] + if host_cpu == 'x86' or host_cpu == 'x86_64' + pipelines += ['ipu3'] + elif host_cpu == 'aarch64' + pipelines += ['imx8-isi', 'rkisp1'] + endif + + if host_cpu == 'arm' or host_cpu == 'aarch64' + pipelines += ['raspberrypi', 'simple'] + endif + + # Always include the uvcvideo pipeline handler. + pipelines += ['uvcvideo'] +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 1ba6778c..1a68bcd3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -37,8 +37,18 @@ 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' + ], + description : 'Select which pipeline handlers to build. If it this set to auto, all the pipelines applicable to the target architecture will be built.') option('qcam', type : 'feature', -- cgit v1.2.1