[libcamera-devel] [PATCH] libcamera: meson: Allow PH to change libcamera_deps

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Jun 19 11:54:21 CEST 2023


Hi Laurent

On Mon, Jun 19, 2023 at 12:46:39PM +0300, Laurent Pinchart wrote:
> Hi Jacopo,
>
> On Wed, Jun 14, 2023 at 01:45:38PM +0200, Jacopo Mondi wrote:
> > On Thu, Jun 08, 2023 at 05:48:01PM +0300, Laurent Pinchart wrote:
> > > On Thu, Jun 08, 2023 at 03:33:25PM +0200, Jacopo Mondi via libcamera-devel wrote:
> > > > From: Naushir Patuck <naush at raspberrypi.com>
> > > >
> > > > Pipeline handlers can have custom dependencies.
> > > >
> > > > Allow each pipeline handler subdir to add them to libcamera_deps[].
> > >
> > > I wonder how meson will handle the case where multiple pipeline handlers
> > > will add the same dependency. Is this something you've tested ?
> >
> > It doesn't seem to bother meson at all
> >
> > --- a/src/libcamera/pipeline/rkisp1/meson.build
> > +++ b/src/libcamera/pipeline/rkisp1/meson.build
> > @@ -1,5 +1,6 @@
> >  # SPDX-License-Identifier: CC0-1.0
> >
> > +libcamera_deps += [ libatomic ]
> >  libcamera_sources += files([
> >      'rkisp1.cpp',
> >      'rkisp1_path.cpp',
> > diff --git a/src/libcamera/pipeline/rpi/meson.build b/src/libcamera/pipeline/rpi/meson.build
> > index 2391b6a9729e..b3febd9a90ad 100644
> > --- a/src/libcamera/pipeline/rpi/meson.build
> > +++ b/src/libcamera/pipeline/rpi/meson.build
> > @@ -1,5 +1,7 @@
> >  # SPDX-License-Identifier: CC0-1.0
> >
> > +libcamera_deps += [ libatomic ]
> > +
> >  subdir('common')
> >
> >
> >     Enabled pipelines        : rpi/vc4
> >                                rkisp1
> >
> > Compiles fine
>
> Should be fine then.
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> I wonder if meson ends up adding -latomic twice on the command line.

Apparently it does not. I'm surprised as well by meson's smartness in
this case

[23/108] c++  -o src/libcamera/base/libcamera-base.so.0.0.5 src/libcamera/base/libcamera-base.so.0.0.5.p/backtrace.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/class.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/bound_method.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/event_dispatcher.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/event_dispatcher_poll.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/event_notifier.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/file.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/flags.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/log.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/message.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/mutex.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/object.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/semaphore.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/shared_fd.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/signal.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/thread.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/timer.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/unique_fd.cpp.o src/libcamera/base/libcamera-base.so.0.0.5.p/utils.cpp.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libcamera-base.so.0.0.5 -Wno-redundant-move -Wshadow -include /libcamera/libcamera.git/build/config.h -latomic /usr/lib/libdw.so /usr/lib/libelf.so -pthread /usr/lib/libunwind.so -Wl,--end-group


>
> > > > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > > > Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> > > > ---
> > > >  src/libcamera/meson.build | 4 +++-
> > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> > > > index d438504198fe..3cd424779395 100644
> > > > --- a/src/libcamera/meson.build
> > > > +++ b/src/libcamera/meson.build
> > > > @@ -58,6 +58,8 @@ includes = [
> > > >      libcamera_includes,
> > > >  ]
> > > >
> > > > +libcamera_deps = []
> > > > +
> > > >  libatomic = cc.find_library('atomic', required : false)
> > > >  libthreads = dependency('threads')
> > > >
> > > > @@ -154,7 +156,7 @@ if ipa_sign_module
> > > >      libcamera_sources += ipa_pub_key_cpp
> > > >  endif
> > > >
> > > > -libcamera_deps = [
> > > > +libcamera_deps += [
> > > >      libatomic,
> > > >      libcamera_base,
> > > >      libcamera_base_private,
>
> --
> Regards,
>
> Laurent Pinchart


More information about the libcamera-devel mailing list