[libcamera-devel] [PATCH v2 02/13] py: meson: add pystubs build target

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue May 17 18:45:56 CEST 2022


On Tue, May 17, 2022 at 07:07:27PM +0300, Laurent Pinchart via libcamera-devel wrote:
> On Tue, May 17, 2022 at 05:33:14PM +0300, Tomi Valkeinen wrote:
> > Add a 'pystubs' build target for building the python stubs.
> > 
> > For now this needs to be ran manually. I didn't figure out how to
> > generate the stubs after the libcamera bindings are built.
> > 
> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> > ---
> >  src/py/libcamera/meson.build | 14 +++++++++++++-
> >  1 file changed, 13 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/py/libcamera/meson.build b/src/py/libcamera/meson.build
> > index 38f619d0..32e74504 100644
> > --- a/src/py/libcamera/meson.build
> > +++ b/src/py/libcamera/meson.build
> > @@ -60,6 +60,18 @@ run_command('ln', '-fsT', '../../../../src/py/libcamera/__init__.py',
> >  
> >  install_data(['__init__.py'], install_dir : destdir)
> >  
> > -# \todo Generate stubs when building. See https://peps.python.org/pep-0484/#stub-files
> > +# \todo Generate stubs when building, and install them.
> > +# See https://peps.python.org/pep-0484/#stub-files
> >  # Note: Depends on pybind11-stubgen. To generate pylibcamera stubs:
> >  # $ PYTHONPATH=build/src/py pybind11-stubgen --no-setup-py -o build/src/py libcamera
> > +# The target below can be ran manually, but how to create a meson target that
> > +# is run if pycamera is built?
> > +
> > +stubgen = find_program('pybind11-stubgen', required : false)
> > +
> > +if stubgen.found()
> > +    run_target('pystubs',
> > +               depends: pycamera,
> > +               env: {'PYTHONPATH': meson.project_build_root() / 'src' / 'py'},

This requires meson 0.57.

> > +               command: [stubgen, '--no-setup-py', '-o', meson.project_build_root() / 'src' / 'py', 'libcamera'])
> > +endif

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list