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>
43 lines
1.3 KiB
Meson
43 lines
1.3 KiB
Meson
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
ipa_includes = [
|
|
libcamera_includes,
|
|
]
|
|
|
|
ipa_install_dir = libcamera_libdir
|
|
ipa_data_dir = libcamera_datadir / 'ipa'
|
|
ipa_sysconf_dir = libcamera_sysconfdir / 'ipa'
|
|
|
|
config_h.set('IPA_CONFIG_DIR',
|
|
'"' + get_option('prefix') / ipa_sysconf_dir +
|
|
':' + get_option('prefix') / ipa_data_dir + '"')
|
|
|
|
config_h.set('IPA_MODULE_DIR',
|
|
'"' + get_option('prefix') / ipa_install_dir + '"')
|
|
|
|
subdir('libipa')
|
|
|
|
ipa_sign = files('ipa-sign.sh')
|
|
|
|
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 ipa_modules.contains(pipeline)
|
|
subdir(pipeline)
|
|
ipa_names += ipa_install_dir / ipa_name + '.so'
|
|
endif
|
|
endforeach
|
|
|
|
if ipa_sign_module
|
|
# Regenerate the signatures for all IPA modules. We can't simply install the
|
|
# .sign files, as meson strips the DT_RPATH and DT_RUNPATH from binaries at
|
|
# install time, which invalidates the signatures.
|
|
meson.add_install_script('ipa-sign-install.sh',
|
|
ipa_priv_key.full_path(),
|
|
ipa_names)
|
|
endif
|