The IPAs are loaded from a defined location set as IPA_MODULE_DIR.
Furthermore, configuration files for both libcamera and IPAs are loaded
from paths defined during the meson configuration.
To make it easy to identify these locations for a given configuration,
present them as a 'paths' section in the meson summary.
This adds a summary section to meson in the form:
Paths
LIBCAMERA_DATA_DIR : "/usr/share/libcamera"
LIBCAMERA_SYSCONF_DIR : "/etc/camera/libcamera"
IPA_PROXY_DIR : "/usr/libexec/libcamera"
IPA_CONFIG_DIR : "/etc/camera/libcamera/ipa:/usr/share/libcamera/ipa"
IPA_MODULE_DIR : "/usr/lib/x86_64-linux-gnu/libcamera"
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
49 lines
1.4 KiB
Meson
49 lines
1.4 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 + '"')
|
|
|
|
summary({
|
|
'IPA_CONFIG_DIR' : config_h.get('IPA_CONFIG_DIR'),
|
|
'IPA_MODULE_DIR' : config_h.get('IPA_MODULE_DIR'),
|
|
}, section : 'Paths')
|
|
|
|
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
|