[libcamera-devel] [PATCH v2 6/7] meson: Add a configuration option to build IPAs

Jacopo Mondi jacopo at jmondi.org
Fri May 21 11:48:56 CEST 2021


Hi Umang,

On Wed, May 19, 2021 at 03:49:53PM +0530, Umang Jain wrote:
> There can be multiple IPAs per pipeline-handler or platform.
> They can live in-tree or externally linked. To support the externally
> linked IPA use-case, provide a mechanism to choose whether or not
> to build the IPAs in tree, with the help of a meson configuration
> option.
>
> By default, all in-tree IPAs are built.
>
> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
>  meson.build         | 1 +
>  meson_options.txt   | 5 +++++
>  src/ipa/meson.build | 5 +++--
>  3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index 46eb1b46..6626fa7e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -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,
> diff --git a/meson_options.txt b/meson_options.txt
> index 69f11f85..2c80ad8b 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -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')
> +

Mmm, this new options means that by default all the IPAs are built,
even if the pipeline handler is not built.

This requires a more precise control of the build options, as it's now
easier to mis-align pipelines and IPAs.

Have we considered the other way around ? Build by default the IPAs
for which a pipeline is built (like we do today) unless it is
blacklisted ?

>  option('lc-compliance',
>          type : 'feature',
>          value : 'auto',
> diff --git a/src/ipa/meson.build b/src/ipa/meson.build
> index 5b5684a1..49245e5e 100644
> --- a/src/ipa/meson.build
> +++ b/src/ipa/meson.build
> @@ -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
> --
> 2.26.2
>


More information about the libcamera-devel mailing list