diff options
Diffstat (limited to 'src/ipa/meson.build')
-rw-r--r-- | src/ipa/meson.build | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/src/ipa/meson.build b/src/ipa/meson.build index e15a8a06..0ad4631d 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -28,14 +28,45 @@ 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. +# Tests require the vimc IPA, similar to vimc pipline-handler for their +# execution. Include it automatically when tests are enabled. +if get_option('test') and 'vimc' not in ipa_modules + message('Enabling vimc IPA to support tests') + ipa_modules += ['vimc'] +endif + +enabled_ipa_modules = [] +enabled_ipa_names = [] +ipa_names = [] + +subdirs = [] foreach pipeline : pipelines - if ipa_modules.contains(pipeline) - subdir(pipeline) - ipa_names += ipa_install_dir / ipa_name + '.so' + # The current implementation expects the IPA module name to match the + # pipeline name. + # \todo Make the IPA naming scheme more flexible. + 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 + + subdirs += pipeline + subdir(pipeline) + + # Don't reuse the pipeline variable below, the subdirectory may have + # overwritten it. +endforeach + +# The ipa-sign-install.sh script which uses the enabled_ipa_modules variable +# will itself prepend MESON_INSTALL_DESTDIR_PREFIX to each ipa module name, +# therefore we must not include the prefix string here. +foreach ipa_name : ipa_names + enabled_ipa_modules += ipa_install_dir / ipa_name + '.so' endforeach if ipa_sign_module @@ -44,5 +75,6 @@ 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, + install_tag : 'runtime') endif |