meson: Add a configuration option to build IPAs

There can be multiple IPAs per pipeline-handler or platform.
They can live in-tree or externally linked. It is up to the vendor
whether to use in-tree IPA for a platform or provide it externally.
In the case of IPAs being external, building in-tree IPAs might be
futile hence, provide a clear and explicit mechanism to choose whether
to build the in-tree IPA for the platform or not.

By default, all in-tree IPAs are built when a matching Pipeline handler
is also enabled.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Umang Jain 2021-05-24 14:50:23 +05:30 committed by Laurent Pinchart
parent c76ca01323
commit e8924f30f7
3 changed files with 9 additions and 2 deletions

View file

@ -167,6 +167,7 @@ py_mod.find_installation('python3', modules: py_modules)
## Summarise Configurations
summary({
'Enabled pipelines': pipelines,
'Enabled IPA modules': ipa_modules,
'Android support': android_enabled,
'GStreamer support': gst_enabled,
'V4L2 emulation support': v4l2_enabled,

View file

@ -25,6 +25,11 @@ option('gstreamer',
value : 'auto',
description : 'Compile libcamera GStreamer plugin')
option('ipas',
type : 'array',
choices : ['ipu3', 'raspberrypi', 'rkisp1', 'vimc'],
description : 'Select which IPA modules to build')
option('lc-compliance',
type : 'feature',
value : 'auto',

View file

@ -19,14 +19,15 @@ subdir('libipa')
ipa_sign = files('ipa-sign.sh')
ipas = ['ipu3', 'raspberrypi', 'rkisp1', 'vimc']
ipa_names = []
ipa_modules = get_option('ipas')
# The ipa-sign-install.sh script which uses the ipa_names variable will itself
# prepend MESON_INSTALL_DESTDIR_PREFIX to each ipa module name, therefore we
# must not include the prefix string here.
foreach pipeline : pipelines
if ipas.contains(pipeline)
if ipa_modules.contains(pipeline)
subdir(pipeline)
ipa_names += ipa_install_dir / ipa_name + '.so'
endif