@@ -11,106 +11,35 @@ SOURCES=src/ tests/ setup.py setup_meta.py
1111SPHINXBUILD =$(shell realpath venv/bin/sphinx-build)
1212DOCS_DIR =doc
1313SYSTEM_DEPENDENCIES = \
14- build-essential \
15- cmake \
16- curl \
1714 libpython$(PYTHON_VERSION ) -dev \
1815 libsdl2-dev \
1916 libzbar-dev \
2017 tox \
21- virtualenv \
22- wget
18+ virtualenv
2319OS =$(shell lsb_release -si)
2420PYTHON_MAJOR_VERSION =3
2521PYTHON_MINOR_VERSION =6
2622PYTHON_VERSION =$(PYTHON_MAJOR_VERSION ) .$(PYTHON_MINOR_VERSION )
2723PYTHON_WITH_VERSION =python$(PYTHON_VERSION )
28- # python3 has a "m" suffix for both include path and library
29- PYTHON_M =$(PYTHON_WITH_VERSION )
30- SITE_PACKAGES_DIR =$(VENV_NAME ) /lib/$(PYTHON_WITH_VERSION ) /site-packages
31- TMPDIR ?= /tmp
32- DOWNLOAD_DIR = $(TMPDIR ) /downloads
33- OPENCV_VERSION =4.0.1
34- OPENCV_BASENAME =opencv-$(OPENCV_VERSION )
35- OPENCV_ARCHIVE =$(OPENCV_BASENAME ) .tar.gz
36- OPENCV_ARCHIVE_PATH =$(DOWNLOAD_DIR ) /$(OPENCV_ARCHIVE )
37- OPENCV_EXTRACT_PATH =$(DOWNLOAD_DIR ) /$(OPENCV_BASENAME )
38- OPENCV_BUILD_LIB_DIR =$(OPENCV_EXTRACT_PATH ) /build/lib
39- OPENCV_BUILD =$(OPENCV_BUILD_LIB_DIR ) /python$(PYTHON_MAJOR_VERSION ) /cv2*.so
40- OPENCV_DEPLOY =$(SITE_PACKAGES_DIR ) /cv2*.so
41- NPROC =` grep -c ' ^processor' /proc/cpuinfo `
42-
43-
44- ifeq ($(PYTHON_MAJOR_VERSION ) , 3)
45- PYTHON_M := $(PYTHON_M)m
46- endif
4724
4825
49- all : system_dependencies virtualenv opencv
26+ all : system_dependencies virtualenv
5027
5128venv :
52- test -d venv || virtualenv -p python $( PYTHON_MAJOR_VERSION ) venv
29+ test -d venv || virtualenv -p $( PYTHON_WITH_VERSION ) venv
5330
5431virtualenv : venv
5532 $(PIP ) install Cython==0.28.6
5633 $(PIP ) install -r requirements/requirements.txt
57- $(GARDEN ) install xcamera
34+
35+ virtualenv/test : virtualenv
36+ $(PIP ) install -r requirements/requirements-test.txt
5837
5938system_dependencies :
6039ifeq ($(OS ) , Ubuntu)
6140 sudo apt install --yes --no-install-recommends $(SYSTEM_DEPENDENCIES)
6241endif
6342
64- $(OPENCV_ARCHIVE_PATH ) :
65- mkdir -p $(DOWNLOAD_DIR )
66- curl --location https://github.com/opencv/opencv/archive/$(OPENCV_VERSION ) .tar.gz \
67- --progress-bar --output $(OPENCV_ARCHIVE_PATH )
68-
69- # The build also relies on virtualenv, because we make references to it.
70- # Plus numpy is required to build OpenCV Python module.
71- $(OPENCV_BUILD ) : $(OPENCV_ARCHIVE_PATH ) virtualenv
72- tar -xf $(OPENCV_ARCHIVE_PATH ) --directory $(DOWNLOAD_DIR )
73- cmake \
74- -D CMAKE_SHARED_LINKER_FLAGS=-l$(PYTHON_M ) \
75- -D BUILD_SHARED_LIBS=ON \
76- -D BUILD_STATIC_LIBS=OFF \
77- -D BUILD_DOCS=OFF \
78- -D BUILD_OPENCV_APPS=OFF \
79- -D BUILD_OPENCV_JAVA=OFF \
80- -D BUILD_OPENCV_JAVA_BINDINGS_GENERATOR=OFF \
81- -D BUILD_OPENCV_NONFREE=OFF \
82- -D BUILD_OPENCV_PYTHON2=OFF \
83- -D BUILD_OPENCV_PYTHON3=ON \
84- -D BUILD_OPENCV_STITCHING=OFF \
85- -D BUILD_OPENCV_SUPERRES=OFF \
86- -D BUILD_OPENCV_TS=OFF \
87- -D BUILD_PACKAGE=OFF \
88- -D BUILD_PERF_TESTS=OFF \
89- -D BUILD_TESTS=OFF \
90- -D BUILD_WITH_DEBUG_INFO=OFF \
91- -D OPENCV_SKIP_PYTHON_LOADER=ON \
92- -D OPENCV_PYTHON$(PYTHON_MAJOR_VERSION ) _INSTALL_PATH=$(SITE_PACKAGES_DIR ) \
93- -D PYTHON$(PYTHON_MAJOR_VERSION ) _PACKAGES_PATH=$(SITE_PACKAGES_DIR ) \
94- -D PYTHON$(PYTHON_MAJOR_VERSION ) _EXECUTABLE=$(PYTHON ) \
95- -D PYTHON$(PYTHON_MAJOR_VERSION ) _INCLUDE_PATH=/usr/include/$(PYTHON_M ) / \
96- -D PYTHON$(PYTHON_MAJOR_VERSION ) _LIBRARIES=/usr/lib/x86_64-linux-gnu/lib$(PYTHON_M ) .so \
97- -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python$(PYTHON_MAJOR_VERSION ) \
98- -D WITH_1394=OFF \
99- -D WITH_CUDA=OFF \
100- -D WITH_CUFFT=OFF \
101- -D WITH_GIGEAPI=OFF \
102- -D WITH_GTK=OFF \
103- -D WITH_JASPER=OFF \
104- -D WITH_OPENEXR=OFF \
105- -D WITH_PVAPI=OFF \
106- -B$(OPENCV_EXTRACT_PATH ) /build -H$(OPENCV_EXTRACT_PATH )
107- cmake --build $(OPENCV_EXTRACT_PATH ) /build -- -j$(NPROC )
108-
109- $(OPENCV_DEPLOY ) : $(OPENCV_BUILD ) virtualenv
110- cp $(OPENCV_BUILD ) $(SITE_PACKAGES_DIR )
111-
112- opencv : $(OPENCV_DEPLOY )
113-
11443run/linux : virtualenv
11544 $(PYTHON ) src/main.py
11645
@@ -119,20 +48,19 @@ run: run/linux
11948test :
12049 $(TOX )
12150
122- uitest : virtualenv
123- $(PIP ) install -r requirements/test_requirements.txt
51+ uitest : virtualenv/test
12452 PYTHONPATH=src $(PYTHON ) -m unittest discover --top-level-directory=. --start-directory=tests/ui/
12553
126- isort-check : virtualenv
54+ lint/ isort-check : virtualenv/test
12755 $(ISORT ) --check-only --recursive --diff $(SOURCES )
12856
129- isort-fix : virtualenv
57+ lint/ isort-fix : virtualenv/test
13058 $(ISORT ) --recursive $(SOURCES )
13159
132- flake8 : virtualenv
60+ lint/ flake8 : virtualenv/test
13361 $(FLAKE8 ) $(SOURCES )
13462
135- lint : isort-check flake8
63+ lint : lint/ isort-check lint/ flake8
13664
13765docs/clean :
13866 rm -rf $(DOCS_DIR ) /build/
@@ -156,5 +84,5 @@ clean: release/clean docs/clean
15684 find src/ -type d -name " __pycache__" -exec rm -r {} +
15785 find src/ -type d -name " *.egg-info" -exec rm -r {} +
15886
159- clean/full : clean
160- rm -rf $(VENV_NAME ) .tox/ $( DOWNLOAD_DIR )
87+ clean/all : clean
88+ rm -rf $(VENV_NAME ) .tox/
0 commit comments