[libcamera-devel] [PATCH 03/13] ipa: meson: Allow nested IPA directory structures

Jacopo Mondi jacopo.mondi at ideasonboard.com
Thu May 4 11:53:38 CEST 2023


Hi Naush

On Wed, May 03, 2023 at 01:20:25PM +0100, Naushir Patuck via libcamera-devel wrote:
> The current IPA build files require a flat directory struture for the
> IPAs. Modify the build files to remove this restriction and allow a
> directory structure such as:
>
> src/ipa
>   |- raspberrypi
>       |- common
>       |- cam_helpers
>       |- controller
>       |- vc4
>   |- rkisp1
>   |- ipu3
>
> where each subdir (e.g. raspberrypi/common, raspberrypi/cam_helper) has
> its own meson.build file. Such a directory structure will be introduced
> for the Raspberry Pi IPA in a future commit.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  meson.build                     |  2 +-
>  src/ipa/ipu3/meson.build        |  2 ++
>  src/ipa/meson.build             | 26 +++++++++++++++++++++-----
>  src/ipa/raspberrypi/meson.build |  2 ++
>  src/ipa/rkisp1/meson.build      |  2 ++
>  5 files changed, 28 insertions(+), 6 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index d3289181b7b9..2d99029bf5b7 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -262,7 +262,7 @@ py_mod.find_installation('python3', modules: py_modules)
>  ## Summarise Configurations
>  summary({
>              'Enabled pipelines': pipelines,
> -            'Enabled IPA modules': enabled_ipa_modules,
> +            'Enabled IPA modules': enabled_ipa_names,
>              'Tracing support': tracing_enabled,
>              'Android support': android_enabled,
>              'GStreamer support': gst_enabled,
> diff --git a/src/ipa/ipu3/meson.build b/src/ipa/ipu3/meson.build
> index 658e7c9bc366..66c398432d43 100644
> --- a/src/ipa/ipu3/meson.build
> +++ b/src/ipa/ipu3/meson.build
> @@ -29,3 +29,5 @@ if ipa_sign_module
>                    install : false,
>                    build_by_default : true)
>  endif
> +
> +ipa_names += ipa_name

Not excited by this one here, as it seems easy to forget. Anyway, I
know this version comes after a long discussion, so it's fine

With your comment addressed
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Thanks
  j

> diff --git a/src/ipa/meson.build b/src/ipa/meson.build
> index 76ad5b445601..fac92f32fdb9 100644
> --- a/src/ipa/meson.build
> +++ b/src/ipa/meson.build
> @@ -36,16 +36,32 @@ if get_option('test') and 'vimc' not in ipa_modules
>  endif
>
>  enabled_ipa_modules = []
> +enabled_ipa_names = []
> +ipa_names = []
>
>  # 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.
> +
> +subdirs = []
>  foreach pipeline : pipelines
> -    if ipa_modules.contains(pipeline)
> -        subdir(pipeline)
> -        ipa_names += ipa_install_dir / ipa_name + '.so'
> -        enabled_ipa_modules += pipeline
> +    if not ipa_modules.contains(pipeline)
> +        continue
> +    endif
> +    enabled_ipa_names += pipeline
> +
> +    # Allow multi-level directory structuring for the IPAs if needed.
> +    pipeline = pipeline.split('/')[0]
> +    if pipeline in subdirs
> +        continue
>      endif
> +
> +    subdir(pipeline)
> +    subdirs += [pipeline]
> +endforeach
> +
> +foreach ipa_name : ipa_names
> +    enabled_ipa_modules += ipa_install_dir / ipa_name + '.so'
>  endforeach
>
>  if ipa_sign_module
> @@ -54,5 +70,5 @@ if ipa_sign_module
>      # install time, which invalidates the signatures.
>      meson.add_install_script('ipa-sign-install.sh',
>                               ipa_priv_key.full_path(),
> -                             ipa_names)
> +                             enabled_ipa_modules)
>  endif
> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build
> index de78cbd80f9c..95437cbcc962 100644
> --- a/src/ipa/raspberrypi/meson.build
> +++ b/src/ipa/raspberrypi/meson.build
> @@ -64,3 +64,5 @@ if ipa_sign_module
>  endif
>
>  subdir('data')
> +
> +ipa_names += ipa_name
> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build
> index ccb84b27525b..e813da53ae9b 100644
> --- a/src/ipa/rkisp1/meson.build
> +++ b/src/ipa/rkisp1/meson.build
> @@ -29,3 +29,5 @@ if ipa_sign_module
>                    install : false,
>                    build_by_default : true)
>  endif
> +
> +ipa_names += ipa_name
> --
> 2.34.1
>


More information about the libcamera-devel mailing list