xref: /OK3568_Linux_fs/buildroot/package/opencv4/opencv4.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# opencv4
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunOPENCV4_VERSION = 4.5.4
8*4882a593SmuzhiyunOPENCV4_SITE = $(call github,opencv,opencv,$(OPENCV4_VERSION))
9*4882a593SmuzhiyunOPENCV4_INSTALL_STAGING = YES
10*4882a593SmuzhiyunOPENCV4_LICENSE = Apache-2.0
11*4882a593SmuzhiyunOPENCV4_LICENSE_FILES = LICENSE
12*4882a593SmuzhiyunOPENCV4_CPE_ID_VENDOR = opencv
13*4882a593SmuzhiyunOPENCV4_CPE_ID_PRODUCT = opencv
14*4882a593SmuzhiyunOPENCV4_SUPPORTS_IN_SOURCE_BUILD = NO
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunOPENCV4_CXXFLAGS = $(TARGET_CXXFLAGS)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun# Uses __atomic_fetch_add_4
19*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
20*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -latomic
21*4882a593Smuzhiyunendif
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun# Fix c++11 build with missing std::exception_ptr
24*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_64735),y)
25*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -DCV__EXCEPTION_PTR=0
26*4882a593Smuzhiyunendif
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y)
29*4882a593SmuzhiyunOPENCV4_CXXFLAGS += -O0
30*4882a593Smuzhiyunendif
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun# OpenCV component options
33*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
34*4882a593Smuzhiyun	-DCMAKE_CXX_FLAGS="$(OPENCV4_CXXFLAGS)" \
35*4882a593Smuzhiyun	-DBUILD_DOCS=OFF \
36*4882a593Smuzhiyun	-DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),ON,OFF) \
37*4882a593Smuzhiyun	-DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV4_BUILD_TESTS),ON,OFF) \
38*4882a593Smuzhiyun	-DBUILD_WITH_DEBUG_INFO=OFF \
39*4882a593Smuzhiyun	-DDOWNLOAD_EXTERNAL_TEST_DATA=OFF \
40*4882a593Smuzhiyun	-DOPENCV_GENERATE_PKGCONFIG=ON \
41*4882a593Smuzhiyun	-DOPENCV_ENABLE_PKG_CONFIG=ON
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_BUILD_TESTS)$(BR2_PACKAGE_OPENCV4_BUILD_PERF_TESTS),)
44*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DINSTALL_TEST=OFF
45*4882a593Smuzhiyunelse
46*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DINSTALL_TEST=ON
47*4882a593Smuzhiyunendif
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# OpenCV build options
50*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
51*4882a593Smuzhiyun	-DBUILD_WITH_STATIC_CRT=OFF \
52*4882a593Smuzhiyun	-DENABLE_CCACHE=OFF \
53*4882a593Smuzhiyun	-DENABLE_COVERAGE=OFF \
54*4882a593Smuzhiyun	-DENABLE_FAST_MATH=ON \
55*4882a593Smuzhiyun	-DENABLE_IMPL_COLLECTION=OFF \
56*4882a593Smuzhiyun	-DENABLE_NOISY_WARNINGS=OFF \
57*4882a593Smuzhiyun	-DENABLE_OMIT_FRAME_POINTER=ON \
58*4882a593Smuzhiyun	-DENABLE_PRECOMPILED_HEADERS=OFF \
59*4882a593Smuzhiyun	-DENABLE_PROFILING=OFF \
60*4882a593Smuzhiyun	-DOPENCV_WARNINGS_ARE_ERRORS=OFF
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun# OpenCV link options
63*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
64*4882a593Smuzhiyun	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
65*4882a593Smuzhiyun	-DCMAKE_SKIP_RPATH=OFF \
66*4882a593Smuzhiyun	-DCMAKE_USE_RELATIVE_PATHS=OFF
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun# OpenCV packaging options:
69*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
70*4882a593Smuzhiyun	-DBUILD_PACKAGE=OFF \
71*4882a593Smuzhiyun	-DENABLE_SOLUTION_FOLDERS=OFF \
72*4882a593Smuzhiyun	-DINSTALL_CREATE_DISTRIB=OFF
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun# OpenCV module selection
75*4882a593Smuzhiyun# * Modules on:
76*4882a593Smuzhiyun#   - core: if not set, opencv does not build anything
77*4882a593Smuzhiyun#   - hal: core's dependency
78*4882a593Smuzhiyun# * Modules off:
79*4882a593Smuzhiyun#   - android*: android stuff
80*4882a593Smuzhiyun#   - apps: programs for training classifiers
81*4882a593Smuzhiyun#   - java: java bindings
82*4882a593Smuzhiyun#   - viz: missing VTK dependency
83*4882a593Smuzhiyun#   - world: all-in-one module
84*4882a593Smuzhiyun#
85*4882a593Smuzhiyun# * Contrib modules from [1] are disabled:
86*4882a593Smuzhiyun#   - opencv_contrib package is not available in Buildroot;
87*4882a593Smuzhiyun#   - OPENCV_EXTRA_MODULES_PATH is not set.
88*4882a593Smuzhiyun#
89*4882a593Smuzhiyun# [1] https://github.com/Itseez/opencv_contrib
90*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
91*4882a593Smuzhiyun	-DBUILD_opencv_androidcamera=OFF \
92*4882a593Smuzhiyun	-DBUILD_opencv_apps=OFF \
93*4882a593Smuzhiyun	-DBUILD_opencv_calib3d=$(if $(BR2_PACKAGE_OPENCV4_LIB_CALIB3D),ON,OFF) \
94*4882a593Smuzhiyun	-DBUILD_opencv_core=ON \
95*4882a593Smuzhiyun	-DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV4_LIB_FEATURES2D),ON,OFF) \
96*4882a593Smuzhiyun	-DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV4_LIB_FLANN),ON,OFF) \
97*4882a593Smuzhiyun	-DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV4_LIB_HIGHGUI),ON,OFF) \
98*4882a593Smuzhiyun	-DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGCODECS),ON,OFF) \
99*4882a593Smuzhiyun	-DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV4_LIB_IMGPROC),ON,OFF) \
100*4882a593Smuzhiyun	-DBUILD_opencv_java=OFF \
101*4882a593Smuzhiyun	-DBUILD_opencv_ml=$(if $(BR2_PACKAGE_OPENCV4_LIB_ML),ON,OFF) \
102*4882a593Smuzhiyun	-DBUILD_opencv_objdetect=$(if $(BR2_PACKAGE_OPENCV4_LIB_OBJDETECT),ON,OFF) \
103*4882a593Smuzhiyun	-DBUILD_opencv_photo=$(if $(BR2_PACKAGE_OPENCV4_LIB_PHOTO),ON,OFF) \
104*4882a593Smuzhiyun	-DBUILD_opencv_shape=$(if $(BR2_PACKAGE_OPENCV4_LIB_SHAPE),ON,OFF) \
105*4882a593Smuzhiyun	-DBUILD_opencv_stitching=$(if $(BR2_PACKAGE_OPENCV4_LIB_STITCHING),ON,OFF) \
106*4882a593Smuzhiyun	-DBUILD_opencv_superres=$(if $(BR2_PACKAGE_OPENCV4_LIB_SUPERRES),ON,OFF) \
107*4882a593Smuzhiyun	-DBUILD_opencv_ts=$(if $(BR2_PACKAGE_OPENCV4_LIB_TS),ON,OFF) \
108*4882a593Smuzhiyun	-DBUILD_opencv_video=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEO),ON,OFF) \
109*4882a593Smuzhiyun	-DBUILD_opencv_videoio=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOIO),ON,OFF) \
110*4882a593Smuzhiyun	-DBUILD_opencv_videostab=$(if $(BR2_PACKAGE_OPENCV4_LIB_VIDEOSTAB),ON,OFF) \
111*4882a593Smuzhiyun	-DBUILD_opencv_viz=OFF \
112*4882a593Smuzhiyun	-DBUILD_opencv_world=OFF
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun# Hardware support options.
115*4882a593Smuzhiyun#
116*4882a593Smuzhiyun# * PowerPC and VFPv3 support are turned off since their only effects
117*4882a593Smuzhiyun#   are altering CFLAGS, adding '-mcpu=G3 -mtune=G5' or '-mfpu=vfpv3'
118*4882a593Smuzhiyun#   to them, which is already handled by Buildroot.
119*4882a593Smuzhiyun# * NEON logic is needed as it is not only used to add CFLAGS, but
120*4882a593Smuzhiyun#   also to enable additional NEON code.
121*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
122*4882a593Smuzhiyun	-DENABLE_POWERPC=OFF \
123*4882a593Smuzhiyun	-DENABLE_NEON=$(if $(BR2_ARM_CPU_HAS_NEON),ON,OFF) \
124*4882a593Smuzhiyun	-DENABLE_VFPV3=OFF
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun# Cuda stuff
127*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
128*4882a593Smuzhiyun	-DBUILD_CUDA_STUBS=OFF \
129*4882a593Smuzhiyun	-DBUILD_opencv_cudaarithm=OFF \
130*4882a593Smuzhiyun	-DBUILD_opencv_cudabgsegm=OFF \
131*4882a593Smuzhiyun	-DBUILD_opencv_cudacodec=OFF \
132*4882a593Smuzhiyun	-DBUILD_opencv_cudafeatures2d=OFF \
133*4882a593Smuzhiyun	-DBUILD_opencv_cudafilters=OFF \
134*4882a593Smuzhiyun	-DBUILD_opencv_cudaimgproc=OFF \
135*4882a593Smuzhiyun	-DBUILD_opencv_cudalegacy=OFF \
136*4882a593Smuzhiyun	-DBUILD_opencv_cudaobjdetect=OFF \
137*4882a593Smuzhiyun	-DBUILD_opencv_cudaoptflow=OFF \
138*4882a593Smuzhiyun	-DBUILD_opencv_cudastereo=OFF \
139*4882a593Smuzhiyun	-DBUILD_opencv_cudawarping=OFF \
140*4882a593Smuzhiyun	-DBUILD_opencv_cudev=OFF \
141*4882a593Smuzhiyun	-DWITH_CUBLAS=OFF \
142*4882a593Smuzhiyun	-DWITH_CUDA=OFF \
143*4882a593Smuzhiyun	-DWITH_CUFFT=OFF
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun# NVidia stuff
146*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_NVCUVID=OFF
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun# AMD stuff
149*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
150*4882a593Smuzhiyun	-DWITH_OPENCLAMDBLAS=OFF \
151*4882a593Smuzhiyun	-DWITH_OPENCLAMDFFT=OFF
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun# Intel stuff
154*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
155*4882a593Smuzhiyun	-DBUILD_WITH_DYNAMIC_IPP=OFF \
156*4882a593Smuzhiyun	-DWITH_INTELPERC=OFF \
157*4882a593Smuzhiyun	-DWITH_IPP=OFF \
158*4882a593Smuzhiyun	-DWITH_IPP_A=OFF \
159*4882a593Smuzhiyun	-DWITH_TBB=OFF
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun# Smartek stuff
162*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GIGEAPI=OFF
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun# Prosilica stuff
165*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PVAPI=OFF
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun# Ximea stuff
168*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_XIMEA=OFF
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun# Non-Linux support (Android options) must remain OFF:
171*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
172*4882a593Smuzhiyun	-DANDROID=OFF \
173*4882a593Smuzhiyun	-DBUILD_ANDROID_CAMERA_WRAPPER=OFF \
174*4882a593Smuzhiyun	-DBUILD_ANDROID_EXAMPLES=OFF \
175*4882a593Smuzhiyun	-DBUILD_ANDROID_SERVICE=OFF \
176*4882a593Smuzhiyun	-DBUILD_FAT_JAVA_LIB=OFF \
177*4882a593Smuzhiyun	-DINSTALL_ANDROID_EXAMPLES=OFF \
178*4882a593Smuzhiyun	-DWITH_ANDROID_CAMERA=OFF
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun# Non-Linux support (Mac OSX options) must remain OFF:
181*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
182*4882a593Smuzhiyun	-DWITH_AVFOUNDATION=OFF \
183*4882a593Smuzhiyun	-DWITH_CARBON=OFF \
184*4882a593Smuzhiyun	-DWITH_QUICKTIME=OFF
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun# Non-Linux support (Windows options) must remain OFF:
187*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
188*4882a593Smuzhiyun	-DWITH_CSTRIPES=OFF \
189*4882a593Smuzhiyun	-DWITH_DSHOW=OFF \
190*4882a593Smuzhiyun	-DWITH_MSMF=OFF \
191*4882a593Smuzhiyun	-DWITH_VFW=OFF \
192*4882a593Smuzhiyun	-DWITH_VIDEOINPUT=OFF \
193*4882a593Smuzhiyun	-DWITH_WIN32UI=OFF
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun# Software/3rd-party support options:
196*4882a593Smuzhiyun# - disable all examples
197*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
198*4882a593Smuzhiyun	-DBUILD_EXAMPLES=OFF \
199*4882a593Smuzhiyun	-DBUILD_JASPER=OFF \
200*4882a593Smuzhiyun	-DBUILD_JPEG=OFF \
201*4882a593Smuzhiyun	-DBUILD_OPENEXR=OFF \
202*4882a593Smuzhiyun	-DBUILD_OPENJPEG=OFF \
203*4882a593Smuzhiyun	-DBUILD_PNG=OFF \
204*4882a593Smuzhiyun	-DBUILD_PROTOBUF=OFF \
205*4882a593Smuzhiyun	-DBUILD_TIFF=OFF \
206*4882a593Smuzhiyun	-DBUILD_ZLIB=OFF \
207*4882a593Smuzhiyun	-DINSTALL_C_EXAMPLES=OFF \
208*4882a593Smuzhiyun	-DINSTALL_PYTHON_EXAMPLES=OFF \
209*4882a593Smuzhiyun	-DINSTALL_TO_MANGLED_PATHS=OFF
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun# Disabled features (mostly because they are not available in Buildroot), but
212*4882a593Smuzhiyun# - eigen: OpenCV does not use it, not take any benefit from it.
213*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
214*4882a593Smuzhiyun	-DWITH_1394=OFF \
215*4882a593Smuzhiyun	-DWITH_CLP=OFF \
216*4882a593Smuzhiyun	-DWITH_EIGEN=OFF \
217*4882a593Smuzhiyun	-DWITH_GDAL=OFF \
218*4882a593Smuzhiyun	-DWITH_GPHOTO2=OFF \
219*4882a593Smuzhiyun	-DWITH_GSTREAMER_0_10=OFF \
220*4882a593Smuzhiyun	-DWITH_LAPACK=OFF \
221*4882a593Smuzhiyun	-DWITH_MATLAB=OFF \
222*4882a593Smuzhiyun	-DWITH_OPENCL=OFF \
223*4882a593Smuzhiyun	-DWITH_OPENCL_SVM=OFF \
224*4882a593Smuzhiyun	-DWITH_OPENEXR=OFF \
225*4882a593Smuzhiyun	-DWITH_OPENNI2=OFF \
226*4882a593Smuzhiyun	-DWITH_OPENNI=OFF \
227*4882a593Smuzhiyun	-DWITH_UNICAP=OFF \
228*4882a593Smuzhiyun	-DWITH_VA=OFF \
229*4882a593Smuzhiyun	-DWITH_VA_INTEL=OFF \
230*4882a593Smuzhiyun	-DWITH_VTK=OFF \
231*4882a593Smuzhiyun	-DWITH_XINE=OFF
232*4882a593Smuzhiyun
233*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += host-pkgconf zlib
234*4882a593Smuzhiyun
235*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_JASPER),y)
236*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JASPER=ON
237*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += jasper
238*4882a593Smuzhiyunelse
239*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JASPER=OFF
240*4882a593Smuzhiyunendif
241*4882a593Smuzhiyun
242*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_JPEG2000_WITH_OPENJPEG),y)
243*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENJPEG=ON
244*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += openjpeg
245*4882a593Smuzhiyunelse
246*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENJPEG=OFF
247*4882a593Smuzhiyunendif
248*4882a593Smuzhiyun
249*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_FFMPEG),y)
250*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_FFMPEG=ON
251*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += ffmpeg bzip2
252*4882a593Smuzhiyunelse
253*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_FFMPEG=OFF
254*4882a593Smuzhiyunendif
255*4882a593Smuzhiyun
256*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GSTREAMER1),y)
257*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GSTREAMER=ON
258*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += gstreamer1 gst1-plugins-base
259*4882a593Smuzhiyunelse
260*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GSTREAMER=OFF
261*4882a593Smuzhiyunendif
262*4882a593Smuzhiyun
263*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK)$(BR2_PACKAGE_OPENCV4_WITH_GTK3),)
264*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=OFF -DWITH_GTK_2_X=OFF
265*4882a593Smuzhiyunendif
266*4882a593Smuzhiyun
267*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK),y)
268*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=ON
269*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgtk2
270*4882a593Smuzhiyunendif
271*4882a593Smuzhiyun
272*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_GTK3),y)
273*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_GTK=ON -DWITH_GTK_2_X=OFF
274*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgtk3
275*4882a593Smuzhiyunendif
276*4882a593Smuzhiyun
277*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_JPEG),y)
278*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JPEG=ON
279*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += jpeg
280*4882a593Smuzhiyunelse
281*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_JPEG=OFF
282*4882a593Smuzhiyunendif
283*4882a593Smuzhiyun
284*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_OPENGL),y)
285*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENGL=ON
286*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libgl
287*4882a593Smuzhiyunelse
288*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENGL=OFF
289*4882a593Smuzhiyunendif
290*4882a593Smuzhiyun
291*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_OPENMP=$(if $(BR2_TOOLCHAIN_HAS_OPENMP),ON,OFF)
292*4882a593Smuzhiyun
293*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_PNG),y)
294*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PNG=ON
295*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += libpng
296*4882a593Smuzhiyunelse
297*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PNG=OFF
298*4882a593Smuzhiyunendif
299*4882a593Smuzhiyun
300*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_PROTOBUF),y)
301*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
302*4882a593Smuzhiyun	-DPROTOBUF_UPDATE_FILES=ON \
303*4882a593Smuzhiyun	-DWITH_PROTOBUF=ON
304*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += protobuf
305*4882a593Smuzhiyunelse
306*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_PROTOBUF=OFF
307*4882a593Smuzhiyunendif
308*4882a593Smuzhiyun
309*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_QT5),y)
310*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_QT=5
311*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += qt5base
312*4882a593Smuzhiyunelse
313*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_QT=OFF
314*4882a593Smuzhiyunendif
315*4882a593Smuzhiyun
316*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_TIFF),y)
317*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_TIFF=ON
318*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += tiff
319*4882a593Smuzhiyunelse
320*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_TIFF=OFF
321*4882a593Smuzhiyunendif
322*4882a593Smuzhiyun
323*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_V4L),y)
324*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
325*4882a593Smuzhiyun	-DWITH_LIBV4L=$(if $(BR2_PACKAGE_LIBV4L),ON,OFF) \
326*4882a593Smuzhiyun	-DWITH_V4L=ON
327*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBV4L),libv4l)
328*4882a593Smuzhiyunelse
329*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
330*4882a593Smuzhiyunendif
331*4882a593Smuzhiyun
332*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_WITH_WEBP),y)
333*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_WEBP=ON
334*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += webp
335*4882a593Smuzhiyunelse
336*4882a593SmuzhiyunOPENCV4_CONF_OPTS += -DWITH_WEBP=OFF
337*4882a593Smuzhiyunendif
338*4882a593Smuzhiyun
339*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_OPENCV4_LIB_PYTHON),y)
340*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
341*4882a593Smuzhiyun	-DBUILD_opencv_python2=OFF \
342*4882a593Smuzhiyun	-DBUILD_opencv_python3=ON \
343*4882a593Smuzhiyun	-DPYTHON3_EXECUTABLE=$(HOST_DIR)/bin/python3 \
344*4882a593Smuzhiyun	-DPYTHON3_INCLUDE_PATH=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
345*4882a593Smuzhiyun	-DPYTHON3_LIBRARIES=$(STAGING_DIR)/usr/lib/libpython$(PYTHON3_VERSION_MAJOR).so \
346*4882a593Smuzhiyun	-DPYTHON3_NUMPY_INCLUDE_DIRS=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \
347*4882a593Smuzhiyun	-DPYTHON3_PACKAGES_PATH=/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
348*4882a593Smuzhiyun	-DPYTHON3_NUMPY_VERSION=$(PYTHON_NUMPY_VERSION)
349*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += python3
350*4882a593SmuzhiyunOPENCV4_KEEP_PY_FILES += usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/cv2/config*.py
351*4882a593SmuzhiyunOPENCV4_CONF_ENV += $(PKG_PYTHON_DISTUTILS_ENV)
352*4882a593SmuzhiyunOPENCV4_DEPENDENCIES += python-numpy
353*4882a593Smuzhiyunelse
354*4882a593SmuzhiyunOPENCV4_CONF_OPTS += \
355*4882a593Smuzhiyun	-DBUILD_opencv_python2=OFF \
356*4882a593Smuzhiyun	-DBUILD_opencv_python3=OFF
357*4882a593Smuzhiyunendif
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun# Installation hooks:
360*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_LICENSE
361*4882a593Smuzhiyun	$(RM) -fr $(TARGET_DIR)/usr/share/licenses/opencv4
362*4882a593Smuzhiyunendef
363*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_LICENSE
364*4882a593Smuzhiyun
365*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_VALGRIND
366*4882a593Smuzhiyun	$(RM) -f $(TARGET_DIR)/usr/share/opencv4/valgrind*
367*4882a593Smuzhiyunendef
368*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_VALGRIND
369*4882a593Smuzhiyun
370*4882a593Smuzhiyunifneq ($(BR2_PACKAGE_OPENCV4_INSTALL_DATA),y)
371*4882a593Smuzhiyundefine OPENCV4_CLEAN_INSTALL_DATA
372*4882a593Smuzhiyun	$(RM) -fr $(TARGET_DIR)/usr/share/opencv4/haarcascades \
373*4882a593Smuzhiyun		$(TARGET_DIR)/usr/share/opencv4/lbpcascades
374*4882a593Smuzhiyunendef
375*4882a593SmuzhiyunOPENCV4_POST_INSTALL_TARGET_HOOKS += OPENCV4_CLEAN_INSTALL_DATA
376*4882a593Smuzhiyunendif
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun$(eval $(cmake-package))
379