From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kLRb1-0001T9-Bd for ptxdist@pengutronix.de; Thu, 24 Sep 2020 15:47:39 +0200 Received: from mol by dude02.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1kLRb1-0003gW-3J for ptxdist@pengutronix.de; Thu, 24 Sep 2020 15:47:39 +0200 Date: Thu, 24 Sep 2020 15:47:39 +0200 From: Michael Olbrich Message-ID: <20200924134739.GL11021@pengutronix.de> References: <20200922101659.GH11021@pengutronix.de> <391-5f6c4c00-35-34b5be80@174031045> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <391-5f6c4c00-35-34b5be80@174031045> Subject: Re: [ptxdist] ?==?utf-8?q? ?==?utf-8?q? [PATCH] opencv: added option to build/install python bindings List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Hi, On Thu, Sep 24, 2020 at 09:33:47AM +0200, Artur Wiebe wrote: > On Tuesday, September 22, 2020 12:16 CEST, Michael Olbrich wrote: > > On Wed, Sep 16, 2020 at 01:19:28PM +0200, Artur Wiebe wrote: > > > Signed-off-by: Artur Wiebe > > > --- > > > rules/opencv.in | 7 +++++++ > > > rules/opencv.make | 17 +++++++++++++---- > > > 2 files changed, 20 insertions(+), 4 deletions(-) > > > > > > diff --git a/rules/opencv.in b/rules/opencv.in > > > index 328786aed..bbf907b64 100644 > > > --- a/rules/opencv.in > > > +++ b/rules/opencv.in > > > @@ -16,6 +16,7 @@ menuconfig OPENCV > > > select V4L_UTILS if OPENCV_V4L_LIBV4L2 > > > select V4L_UTILS_LIBV4L1 if OPENCV_V4L_LIBV4L2 > > > select V4L_UTILS_LIBV4L2 if OPENCV_V4L_LIBV4L2 > > > + select PYTHON3_NUMPY if OPENCV_PYTHON > > > help > > > Open Source Computer Vision Library > > > > > > @@ -140,6 +141,12 @@ config OPENCV_QT > > > help > > > QT GUI Support > > > > > > +config OPENCV_PYTHON > > > + bool > > > + prompt "Python bindings" > > > + help > > > + Python bindings > > > + > > > config OPENCV_EXAMPLES > > > bool > > > prompt "Build Examples" > > > diff --git a/rules/opencv.make b/rules/opencv.make > > > index 8da4beb98..3e5ac8b2b 100644 > > > --- a/rules/opencv.make > > > +++ b/rules/opencv.make > > > @@ -35,7 +35,7 @@ OPENCV_BUILD_DIR := $(OPENCV_DIR)-build > > > > > > OPENCV_CONF_TOOL := cmake > > > > > > -# Note: not configure_helper.py does not show some options that are only > > > +# Note: configure_helper.py does not show some options that are only > > > # valid on other architectures. Run is for ARM and x86_64 and mix the results. > > > # Variables that are not shown by configure_helper.py are added at the end. > > > OPENCV_CONF_OPT := \ > > > @@ -78,7 +78,8 @@ OPENCV_CONF_OPT := \ > > > -DBUILD_opencv_ml=$(call ptx/onoff,PTXCONF_OPENCV_ML) \ > > > -DBUILD_opencv_objdetect=$(call ptx/onoff,PTXCONF_OPENCV_OBJDETECT) \ > > > -DBUILD_opencv_photo=$(call ptx/onoff,PTXCONF_OPENCV_PHOTO) \ > > > - -DBUILD_opencv_python_bindings_generator=ON \ > > > + -DBUILD_opencv_python3=$(call ptx/onoff,PTXCONF_OPENCV_PYTHON) \ > > > > My configure_helper.py shows this exactly on this place (maybe only with other python options set?). That's possible. I need to check this. I know we have issues like this with ARM and x86_64. > > This option should remain at the end with all other options that are not > > visible with configure_helper.py > > > > > + -DBUILD_opencv_python_bindings_generator=$(call ptx/onoff,PTXCONF_OPENCV_PYTHON) \ > > > -DBUILD_opencv_python_tests=ON \ > > > -DBUILD_opencv_stitching=$(call ptx/onoff,PTXCONF_OPENCV_STITCHING) \ > > > -DBUILD_opencv_ts=OFF \ > > > @@ -130,9 +131,11 @@ OPENCV_CONF_OPT := \ > > > -DOPENCV_GENERATE_SETUPVARS=ON \ > > > -DOPENCV_IPP_GAUSSIAN_BLUR=OFF \ > > > -DOPENCV_MATHJAX_RELPATH=https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0 \ > > > - -DOPENCV_PYTHON3_VERSION=OFF \ > > > + -DOPENCV_PYTHON3_VERSION=$(PYTHON3_MAJORMINOR) \ > > > -DOPENCV_WARNINGS_ARE_ERRORS=OFF \ > > > -DPROTOBUF_UPDATE_FILES=OFF \ > > > + -DPYTHON3_EXECUTABLE=$(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR) \ > > > + -DPYTHON3_NUMPY_INCLUDE_DIRS=$(PTXDIST_SYSROOT_TARGET)$(PYTHON3_SITEPACKAGES)/numpy/core/include/ \ > > > -DWITH_1394=OFF \ > > > -DWITH_ADE=OFF \ > > > -DWITH_ARAVIS=OFF \ > > > @@ -203,7 +206,10 @@ OPENCV_CONF_OPT := \ > > > \ > > > -DCMAKE_SKIP_RPATH=ON \ > > > -DBUILD_opencv_python2=OFF \ > > > - -DBUILD_opencv_python3=OFF > > > + -DPYTHON_INCLUDE_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/include/python$(PYTHON3_MAJORMINOR)m \ > > > + -DPYTHON_LIBRARY=$(PTXDIST_SYSROOT_TARGET)/bin/python$(PYTHON3_MAJORMINOR) \ > > > > These variables are described here: https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html > I tried with the ones from configure_helper.py, but it does not work. > During prepare configure tells to set the options above! Right sorry. I think PYTHON3_INCLUDE_DIR / PYTHON3_LIBRARY are the environment variables... > > Hmmm, from what I can tell, you can use PYTHON3_INCLUDE_DIR and > > PYTHON3_LIBRARY here to make it explicit. And configure_helper.py knows > > about PYTHON3_LIBRARY, so move it to the correct location. > > > > Michael > > > > > + -DOPENCV_PYTHON3_INSTALL_PATH=$(PYTHON3_SITEPACKAGES) \ > > > + -DOPENCV_SKIP_PYTHON_LOADER=ON > > > > > > > > > $(STATEDIR)/opencv.install: > > > @@ -243,6 +249,9 @@ $(STATEDIR)/opencv.targetinstall: > > > $(call install_lib, opencv, 0, 0, 0644, $(lib))$(ptx/nl)) > > > ifdef PTXCONF_OPENCV_EXAMPLES > > > @$(call install_tree, opencv, 0, 0, $(OPENCV_BUILD_DIR)/bin, /bin) > > > +endif > > > +ifdef PTXCONF_OPENCV_PYTHON > > > + @$(call install_tree, opencv, 0, 0, -, $(PYTHON3_SITEPACKAGES)) > > > > Actually only > "/usr/lib/python3.7/site-packages/cv2.cpython-37m-x86_64-linux-gnu.so" is > installed (on my platform). I didn't want to code the name from x > variables... That's ok then. I just wanted to make sure that we don't install unnecessary files here. Michael > > What's installed here? Just .py files? Or are .pyc files generated > > correctly? > > > > Michael > > > > > endif > > > @$(call install_finish, opencv) > > > @$(call touch) > > > -- > > > 2.28.0 -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de