[libcamera-devel] [PATCH] meson: Only build pipeline handlers needed in the host architecture
Javier Martinez Canillas
javierm at redhat.com
Fri Dec 23 09:22:29 CET 2022
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:
$ meson build
...
Configuration
Enabled pipelines : ipu3
simple
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 <kieran.bingham at ideasonboard.com>
Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>
---
meson.build | 14 ++++++++++++++
meson_options.txt | 6 ++++--
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index d02f9917965c..fc1023326ed3 100644
--- a/meson.build
+++ b/meson.build
@@ -164,6 +164,20 @@ liblttng = dependency('lttng-ust', required : get_option('tracing'))
# are enabled.
pipelines = get_option('pipelines')
+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']
+ elif host_cpu == 'arm'
+ pipelines = ['raspberrypi']
+ endif
+
+ # Always include the simple and uvcvideo pipeline handlers.
+ pipelines += ['simple', '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 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'],
+ description : '''Select which pipeline handlers to build. If this is set to auto, all
+ the pipelines applicable to the target architecture will be built.''')
option('qcam',
type : 'feature',
--
2.38.1
More information about the libcamera-devel
mailing list