meson: Use dependency() instead of find_library() where possible

Usage of find_library() to find dependencies that libcamera needs to
compile against can lead to the library being found even if the
corresponding headers are not installed. This will then result in a
compilation failure. Switch to dependency() for libdw, libunwind and
lttng-ust to fix this, all three libraries come with a pkgconfig file
that is usually installed by the distribution package that contains the
library headers.

Reported-by: Christian Rauch <Rauch.Christian@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2022-08-14 03:33:57 +03:00
parent dfc6d711c9
commit b954deff20
2 changed files with 3 additions and 3 deletions

View file

@ -122,7 +122,7 @@ libcamera_includes = include_directories('include')
py_modules = []
# Libraries used by multiple components
liblttng = cc.find_library('lttng-ust', required : get_option('tracing'))
liblttng = dependency('lttng-ust', required : get_option('tracing'))
# Pipeline handlers
#

View file

@ -22,8 +22,8 @@ libcamera_base_sources = files([
'utils.cpp',
])
libdw = cc.find_library('libdw', required : false)
libunwind = cc.find_library('libunwind', required : false)
libdw = dependency('libdw', required : false)
libunwind = dependency('libunwind', required : false)
if cc.has_header_symbol('execinfo.h', 'backtrace')
config_h.set('HAVE_BACKTRACE', 1)