[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