[libcamera-devel] [PATCH] meson: import python3 to use also from sysroot

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Jan 11 21:06:50 CET 2020


Hi Nicolas,

On Sat, Jan 11, 2020 at 08:44:17AM -0500, Nicolas Dufresne wrote:
> Le ven. 10 janv. 2020 08 h 05, <madhavan.krishnan at linaro.org> a écrit :
> > From: Madhavan Krishnan <madhavan.krishnan at linaro.org>
> > 
> > importing python module can provide the exact path
> > which can be used in desktop build as well as from
> > any build system
>
> Are you certain this is the right solution ? There is absolutely no other meson
> project using this hack to call python script. I notice the shebang isn't
> pythonic (not using env), could be that. I just don't believe such hack is
> required. It's definately not in meson style.

That's a good point. Madhavan, would the following patch fix your
problem ? Nicolas, any objection against the Suggested-by line below ?

commit 169165b9b00849d30774f2f1cffbdf49b934a717
Author: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Date:   Sat Jan 11 22:01:41 2020 +0200

    libcamera: gen-controls.py: Don't hardcode path to python interpreter

    The gen-controls.py script hardcodes the path to the python interpreter
    to /usr/bin/python3 in the first line of the script. This hardcodes
    usage of the host python3, even when building in cross-compilation
    environments that may ship their own version of python. Fix it by
    setting the interpreter to '/usr/bin/env python3'.

    Reported-by: Madhavan Krishnan <madhavan.krishnan at linaro.org>
    Suggested-by: Nicolas Dufresne <nicolas at ndufresne.ca>
    Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

diff --git a/src/libcamera/gen-controls.py b/src/libcamera/gen-controls.py
index 940386cc68c8..2e5ac5c81cca 100755
--- a/src/libcamera/gen-controls.py
+++ b/src/libcamera/gen-controls.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # SPDX-License-Identifier: GPL-2.0-or-later
 # Copyright (C) 2019, Google Inc.
 #

> > ---
> >  include/libcamera/meson.build | 4 +++-
> >  src/libcamera/meson.build     | 4 +++-
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
> > index 99abf06..83525e2 100644
> > --- a/include/libcamera/meson.build
> > +++ b/include/libcamera/meson.build
> > @@ -21,13 +21,15 @@ include_dir = join_paths(libcamera_include_dir,
> > 'libcamera')
> >  install_headers(libcamera_api,
> >                  subdir : include_dir)
> > 
> > +python_mod = import('python3').find_python()
> > +
> >  gen_controls = files('../../src/libcamera/gen-controls.py')
> > 
> >  control_ids_h = custom_target('control_ids_h',
> >                                input : files('../../src/libcamera/
> > control_ids.yaml', 'control_ids.h.in'),
> >                                output : 'control_ids.h',
> >                                depend_files : gen_controls,
> > -                              command : [gen_controls, '-o', '@OUTPUT@',
> > '@INPUT@'],
> > +                              command : [python_mod, gen_controls, '-o',
> > '@OUTPUT@', '@INPUT@'],
> >                                install : true,
> >                                install_dir : join_paths('include',
> > include_dir))
> > 
> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> > index c4f965b..243935b 100644
> > --- a/src/libcamera/meson.build
> > +++ b/src/libcamera/meson.build
> > @@ -65,13 +65,15 @@ if libudev.found()
> >      ])
> >  endif
> > 
> > +python_mod = import('python3').find_python()
> > +
> >  gen_controls = files('gen-controls.py')
> > 
> >  control_ids_cpp = custom_target('control_ids_cpp',
> >                                  input : files('control_ids.yaml', '
> > control_ids.cpp.in'),
> >                                  output : 'control_ids.cpp',
> >                                  depend_files : gen_controls,
> > -                                command : [gen_controls, '-o', '@OUTPUT@',
> > '@INPUT@'])
> > +                                command : [python_mod, gen_controls, '-o',
> > '@OUTPUT@', '@INPUT@'])
> > 
> >  libcamera_sources += control_ids_cpp
> >  libcamera_sources += control_ids_h

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list