summaryrefslogtreecommitdiff
path: root/src/ipa/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/meson.build')
-rw-r--r--src/ipa/meson.build46
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