[libcamera-devel] [RFC PATCH] ipa: rpi: Make boost optional
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu Sep 24 12:02:01 CEST 2020
By default the Raspberry Pi pipeline handler is enabled when
configuring the build.
The Raspberry Pi IPA currently depends upon 'boost' which is a large
dependency to bring in.
Make the IPA compilation dependant upon the availabilty of the boost
library, but display a warning when the pipeline is enabled and the
dependency is not found.
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
This is mostly posted to promote discussion on this topic.
The requirement for boost is really heavy (+100MB package for a few
headers), and is only used for the RPi IPA.
This patch automatically disables the IPA while printing a message if it
was selected if the boost library is not available.
Doing all of this in a clean way seems quite difficult because of the
way the meson options works ... so ...
3 ... 2 ... 1 ....
Discuss...
src/ipa/raspberrypi/meson.build | 40 +++++++++++++++++++--------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build
index 9445cd097df5..b284378c9621 100644
--- a/src/ipa/raspberrypi/meson.build
+++ b/src/ipa/raspberrypi/meson.build
@@ -2,9 +2,11 @@
ipa_name = 'ipa_rpi'
+boost = dependency('boost', required : false)
+
rpi_ipa_deps = [
libcamera_dep,
- dependency('boost'),
+ boost,
libatomic,
]
@@ -41,22 +43,26 @@ rpi_ipa_sources = files([
'controller/pwl.cpp',
])
-mod = shared_module(ipa_name,
- rpi_ipa_sources,
- name_prefix : '',
- include_directories : rpi_ipa_includes,
- dependencies : rpi_ipa_deps,
- link_with : libipa,
- install : true,
- install_dir : ipa_install_dir)
-
-if ipa_sign_module
- custom_target(ipa_name + '.so.sign',
- input : mod,
- output : ipa_name + '.so.sign',
- command : [ ipa_sign, ipa_priv_key, '@INPUT@', '@OUTPUT@' ],
- install : false,
- build_by_default : true)
+if boost.found()
+ mod = shared_module(ipa_name,
+ rpi_ipa_sources,
+ name_prefix : '',
+ include_directories : rpi_ipa_includes,
+ dependencies : rpi_ipa_deps,
+ link_with : libipa,
+ install : true,
+ install_dir : ipa_install_dir)
+
+ if ipa_sign_module
+ custom_target(ipa_name + '.so.sign',
+ input : mod,
+ output : ipa_name + '.so.sign',
+ command : [ ipa_sign, ipa_priv_key, '@INPUT@', '@OUTPUT@' ],
+ install : false,
+ build_by_default : true)
+ endif
+else
+ warning('The Raspberry Pi pipeline is enabled, but dependency "boost" was not found')
endif
subdir('data')
--
2.25.1
More information about the libcamera-devel
mailing list