From 6e65d4225736cec2fb58168e0e66951483f13903 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 22 Feb 2021 23:05:46 +0200 Subject: libcamera: Enable vimc pipeline handler when tests are enabled The addition of the new IPA IPC mechanism compiles pipeline-specific headers to define the interface between the pipeline and the IPA. This was optimised in 08ce394465b5 ("meson: ipa, proxy: Only build proxies for enabled pipelines") to only build for enabled pipelines, however the tests directly use the VIMC pipeline handler, and require it to be built. Create a local variable to store the requested pipelines from the user configuration and extend the enabled pipelines to ensure that VIMC is always enabled if the tests are also enabled Fixes: 08ce394465b5 ("meson: ipa, proxy: Only build proxies for enabled pipelines") Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Tested-by: Sebastian Fricke --- include/libcamera/ipa/meson.build | 2 +- meson.build | 13 ++++++++++++- src/ipa/meson.build | 2 +- src/libcamera/pipeline/meson.build | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build index a4d3f868..2d72c1fc 100644 --- a/include/libcamera/ipa/meson.build +++ b/include/libcamera/ipa/meson.build @@ -72,7 +72,7 @@ ipa_mojoms = [] foreach file : ipa_mojom_files name = file.split('.')[0] - if not get_option('pipelines').contains(name) + if name not in pipelines continue endif diff --git a/meson.build b/meson.build index be77191d..1768f6ea 100644 --- a/meson.build +++ b/meson.build @@ -111,6 +111,17 @@ py_modules = [] # Libraries used by multiple components liblttng = cc.find_library('lttng-ust', required : get_option('tracing')) +# Pipeline handlers +# +# Tests require the vimc pipeline handler, include it automatically when tests +# are enabled. +pipelines = get_option('pipelines') + +if get_option('test') and 'vimc' not in pipelines + message('Enabling vimc pipeline handler to support tests') + pipelines += ['vimc'] +endif + # Utilities are parsed first to provide support for other components. subdir('utils') @@ -156,5 +167,5 @@ py_mod.find_installation('python3', modules: py_modules) ## Summarise Configurations summary({ - 'Enabled pipelines': get_option('pipelines'), + 'Enabled pipelines': pipelines, }, section : 'Configuration') diff --git a/src/ipa/meson.build b/src/ipa/meson.build index 9d623f22..df385eae 100644 --- a/src/ipa/meson.build +++ b/src/ipa/meson.build @@ -22,7 +22,7 @@ ipa_sign = files('ipa-sign.sh') ipas = ['ipu3', 'raspberrypi', 'rkisp1', 'vimc'] ipa_names = [] -foreach pipeline : get_option('pipelines') +foreach pipeline : pipelines if ipas.contains(pipeline) subdir(pipeline) ipa_names += join_paths(ipa_install_dir, ipa_name + '.so') diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build index 46424493..30dc5b97 100644 --- a/src/libcamera/pipeline/meson.build +++ b/src/libcamera/pipeline/meson.build @@ -1,5 +1,5 @@ # SPDX-License-Identifier: CC0-1.0 -foreach pipeline : get_option('pipelines') +foreach pipeline : pipelines subdir(pipeline) endforeach -- cgit v1.2.1