[libcamera-devel] [PATCH] meson: Use dependency() instead of find_library() where possible

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Tue Aug 16 07:48:24 CEST 2022


On Mon, Aug 15, 2022 at 08:37:23AM +0300, Laurent Pinchart via libcamera-devel wrote:
> 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).
> 

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> > 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