[libcamera-devel] [PATCH] meson: Use dependency() instead of find_library() where possible
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Aug 15 07:37:23 CEST 2022
Hi Kieran,
On Sun, Aug 14, 2022 at 11:36:04PM +0100, Kieran Bingham wrote:
> Quoting Laurent Pinchart via libcamera-devel (2022-08-14 20:11:09)
> > 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.
>
> Can you clarify (perhaps here in the commit message even) why you
> haven't changed the others?
Sure, I'll add
libatomic, libdl and libc++ still use find_library(). The former is part
of the gcc API, and the latter two part of the C and C++ standard
libraries. They are system libraries, and corresponding headers are
guaranteed to be available.
> In particular, gnutls does have a pkg-config for me, so I would expect
> it to be updated too?
See commit ea8ff99dca6a (libcamera: meson: Use dependency() to find
gnutls).
> atomic, dl, and libc++ I suspect are special cases?
>
> > Reported-by: Christian Rauch <Rauch.Christian at gmx.de>
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > meson.build | 2 +-
> > src/libcamera/base/meson.build | 4 ++--
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/meson.build b/meson.build
> > index e8b81ad87a6e..72919102ad55 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -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
> > #
> > diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build
> > index 7030ad1f5927..3b9d74efe935 100644
> > --- a/src/libcamera/base/meson.build
> > +++ b/src/libcamera/base/meson.build
> > @@ -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)
> >
> > base-commit: dfc6d711c9f7f0a9868afa5158aa2089163bded3
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list