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