1menuconfig BR2_PACKAGE_OPENCV3
2	bool "opencv3"
3	depends on BR2_TOOLCHAIN_HAS_ATOMIC
4	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
5	depends on BR2_INSTALL_LIBSTDCPP
6	depends on BR2_USE_WCHAR
7	depends on !BR2_STATIC_LIBS # include dlfcn.h
8	select BR2_PACKAGE_ZLIB
9	help
10	  OpenCV (Open Source Computer Vision) is a library of
11	  programming functions for real time computer vision.
12
13	  Note that the opencv_core module and the opencv_hal library
14	  are always built and installed, not matter which other
15	  modules are enabled below.
16
17	  http://opencv.org/
18
19if BR2_PACKAGE_OPENCV3
20
21comment "OpenCV modules"
22
23config BR2_PACKAGE_OPENCV3_LIB_CALIB3D
24	bool "calib3d"
25	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
26	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
27	help
28	  Include opencv_calib3d (camera calibration and 3d
29	  reconstruction) module into the OpenCV build.
30
31config BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
32	bool "features2d"
33	select BR2_PACKAGE_OPENCV3_LIB_FLANN
34	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
35	select BR2_PACKAGE_OPENCV3_LIB_ML
36	help
37	  Include opencv_features2d (2d features framework) module
38	  into the OpenCV build.
39
40config BR2_PACKAGE_OPENCV3_LIB_FLANN
41	bool "flann"
42	# opencv_core dependency is already enabled
43	help
44	  Include opencv_flann (clustering and search in
45	  multi-dimensional spaces) module into the OpenCV build.
46
47config BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
48	bool "highgui"
49	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
50	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
51	select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
52	help
53	  Include opencv_highgui (high-level gui and media i/o) module
54	  into the OpenCV build.
55
56if BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
57
58choice
59	prompt "gui toolkit"
60	help
61	  GUI toolkit to be used by the opencv_highgui module.
62
63config BR2_PACKAGE_OPENCV3_GUI_NONE
64	bool "none"
65
66config BR2_PACKAGE_OPENCV3_WITH_GTK
67	bool "gtk2"
68	depends on BR2_PACKAGE_LIBGTK2
69
70comment "gtk2 support needs libgtk2"
71	depends on BR2_USE_MMU # libgtk2 -> glib2
72	depends on BR2_TOOLCHAIN_HAS_SYNC_4
73	depends on !BR2_PACKAGE_LIBGTK2
74
75config BR2_PACKAGE_OPENCV3_WITH_GTK3
76	bool "gtk3"
77	depends on BR2_PACKAGE_LIBGTK3
78
79comment "gtk3 support needs libgtk3"
80	depends on BR2_USE_MMU # libgtk3 -> glib2
81	depends on BR2_TOOLCHAIN_HAS_SYNC_4
82	depends on !BR2_PACKAGE_LIBGTK3
83
84config BR2_PACKAGE_OPENCV3_WITH_QT5
85	bool "qt5"
86	depends on BR2_PACKAGE_QT5
87	select BR2_PACKAGE_QT5BASE_CONCURRENT
88	select BR2_PACKAGE_QT5BASE_GUI
89	select BR2_PACKAGE_QT5BASE_WIDGETS
90	help
91	  Use Qt5 with base, concurrent, test, gui and widgets
92	  components, as GUI toolkit.
93
94comment "qt5 support needs qt5"
95	depends on !BR2_PACKAGE_QT5
96
97endchoice
98
99config BR2_PACKAGE_OPENCV3_WITH_OPENGL
100	bool "opengl support"
101	# OpenGL support done using Qt5OpenGL, so depends on WITH_QT5
102	depends on BR2_PACKAGE_OPENCV3_WITH_QT5
103	# OpenGL support requires Qt5OpenGL with GL support, not GLES
104	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
105	depends on BR2_PACKAGE_HAS_LIBGL
106	select BR2_PACKAGE_QT5BASE_OPENGL
107	help
108	  Enable OpenGL for UI.
109
110comment "opengl support needs an OpenGL provider"
111	depends on BR2_PACKAGE_OPENCV3_WITH_QT5
112	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || \
113		!BR2_PACKAGE_HAS_LIBGL
114
115endif # BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
116
117config BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
118	bool "imgcodecs"
119	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
120	help
121	  Include opencv_imgcodecs (image codecs) module into the
122	  OpenCV build.
123
124config BR2_PACKAGE_OPENCV3_LIB_IMGPROC
125	bool "imgproc"
126	# opencv_core dependency is already enabled
127	help
128	  Include opencv_imgproc (image processing) module into the
129	  OpenCV build.
130
131config BR2_PACKAGE_OPENCV3_LIB_ML
132	bool "ml"
133	# opencv_core dependency is already enabled
134	help
135	  Include opencv_ml (machine learning) module into the OpenCV
136	  build.
137
138config BR2_PACKAGE_OPENCV3_LIB_OBJDETECT
139	bool "objdetect"
140	# opencv_core dependency is already enabled
141	select BR2_PACKAGE_OPENCV3_LIB_CALIB3D
142	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
143	select BR2_PACKAGE_OPENCV3_LIB_ML
144	help
145	  Include opencv_objdetect (object detection) module into the
146	  OpenCV build.
147
148config BR2_PACKAGE_OPENCV3_LIB_PHOTO
149	bool "photo"
150	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
151	help
152	  Include opencv_photo (computational photography) module into
153	  the OpenCV build.
154
155config BR2_PACKAGE_OPENCV3_LIB_PYTHON
156	bool "python"
157	depends on BR2_PACKAGE_PYTHON3
158	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
159	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
160	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # python-numpy
161	select BR2_PACKAGE_PYTHON_NUMPY
162	help
163	  Include opencv_python module into the OpenCV build.  No
164	  python example is installed.
165
166comment "python support needs a glibc or musl toolchain w/ gcc >= 9"
167	depends on BR2_PACKAGE_PYTHON3
168	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
169	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
170		!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
171
172config BR2_PACKAGE_OPENCV3_LIB_SHAPE
173	bool "shape"
174	# opencv_core dependency is already enabled
175	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
176	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
177	help
178	  Include opencv_shape (shape descriptors and matchers) module
179	  into the OpenCV build.
180
181config BR2_PACKAGE_OPENCV3_LIB_STITCHING
182	bool "stitching"
183	select BR2_PACKAGE_OPENCV3_LIB_CALIB3D
184	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
185	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
186	select BR2_PACKAGE_OPENCV3_LIB_OBJDETECT
187	help
188	  Include opencv_stitching (images stitching) module into the
189	  OpenCV build.
190
191config BR2_PACKAGE_OPENCV3_LIB_SUPERRES
192	bool "superres"
193	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
194	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
195	help
196	  Include opencv_superres (super resolution) module into the
197	  OpenCV build.
198
199config BR2_PACKAGE_OPENCV3_LIB_TS
200	bool "ts"
201	# opencv_core dependency is already enabled
202	select BR2_PACKAGE_OPENCV3_LIB_HIGHGUI
203	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
204	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
205	select BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
206	help
207	  Include opencv_ts (test) module into the OpenCV build.
208
209config BR2_PACKAGE_OPENCV3_LIB_VIDEOIO
210	bool "videoio"
211	select BR2_PACKAGE_OPENCV3_LIB_IMGCODECS
212	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
213	help
214	  Include opencv_videoio (media i/o) module into the OpenCV
215	  build.
216
217config BR2_PACKAGE_OPENCV3_LIB_VIDEO
218	bool "video"
219	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
220	help
221	  Include opencv_video (video analysis) module into the OpenCV
222	  build.
223
224config BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB
225	bool "videostab"
226	select BR2_PACKAGE_OPENCV3_LIB_CALIB3D
227	select BR2_PACKAGE_OPENCV3_LIB_FEATURES2D
228	select BR2_PACKAGE_OPENCV3_LIB_IMGPROC
229	select BR2_PACKAGE_OPENCV3_LIB_PHOTO
230	select BR2_PACKAGE_OPENCV3_LIB_VIDEO
231	help
232	  Include opencv_videostab (video stabilization) module into
233	  the OpenCV build.
234
235comment "Test sets"
236config BR2_PACKAGE_OPENCV3_BUILD_TESTS
237	bool "build tests"
238
239config BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS
240	bool "build performance tests"
241
242comment "3rd party support"
243
244config BR2_PACKAGE_OPENCV3_WITH_FFMPEG
245	bool "ffmpeg support"
246	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
247	select BR2_PACKAGE_BZIP2
248	select BR2_PACKAGE_FFMPEG
249	select BR2_PACKAGE_FFMPEG_SWSCALE
250	help
251	  Use ffmpeg from the target system.
252
253config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1
254	bool "gstreamer-1.x"
255	depends on BR2_USE_MMU # gstreamer1 -> libglib2
256	depends on BR2_USE_WCHAR # gstreamer1 -> libglib2
257	depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer1 -> libglib2
258	select BR2_PACKAGE_GSTREAMER1
259	select BR2_PACKAGE_GST1_PLUGINS_BASE
260	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
261	help
262	  Enable gstreamer support.
263
264comment "gstreamer support needs a toolchain w/ wchar, threads"
265	depends on BR2_USE_MMU
266	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
267
268config BR2_PACKAGE_OPENCV3_WITH_JASPER
269	bool "jpeg2000 support"
270	select BR2_PACKAGE_JASPER
271	help
272	  Enable jpeg2000 support.
273
274	  Note: this does not use the libjasper bundled with opencv,
275	  but uses the libjasper package installed system-wide by
276	  Buildroot.
277
278config BR2_PACKAGE_OPENCV3_WITH_JPEG
279	bool "jpeg support"
280	select BR2_PACKAGE_JPEG
281	help
282	  Use shared libjpeg from the target system.
283
284config BR2_PACKAGE_OPENCV3_WITH_PNG
285	bool "png support"
286	select BR2_PACKAGE_LIBPNG
287	help
288	  Use shared libpng from the target system.
289
290config BR2_PACKAGE_OPENCV3_WITH_PROTOBUF
291	bool "protobuf support"
292	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS # protobuf
293	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # protobuf
294	select BR2_PACKAGE_PROTOBUF
295	help
296	  Use shared protobuf from the target system.
297
298comment "protobuf support needs a toolchain w/ gcc >= 4.8"
299	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
300	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
301
302config BR2_PACKAGE_OPENCV3_WITH_TIFF
303	bool "tiff support"
304	select BR2_PACKAGE_TIFF
305	help
306	  Use shared libtiff from the target system.
307
308config BR2_PACKAGE_OPENCV3_WITH_V4L
309	bool "v4l support"
310	help
311	  Enable Video 4 Linux support.
312
313	  If the package libv4l is enabled, its support is
314	  automatically enabled.
315
316config BR2_PACKAGE_OPENCV3_WITH_WEBP
317	bool "webp support"
318	select BR2_PACKAGE_WEBP
319	help
320	  Enable WebP support.
321
322	  Use shared libwebp from the target system.
323
324comment "Install options"
325
326config BR2_PACKAGE_OPENCV3_INSTALL_DATA
327	bool "install extra data"
328	help
329	  Install various data that is used by cv libraries and/or
330	  demo applications, specifically for haarcascades and
331	  lbpcascades features.
332
333	  For further information: see OpenCV documentation.
334
335endif # BR2_PACKAGE_OPENCV3
336
337comment "opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library"
338	depends on BR2_TOOLCHAIN_HAS_ATOMIC
339	depends on !BR2_INSTALL_LIBSTDCPP || \
340		!BR2_USE_WCHAR || \
341		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
342		BR2_STATIC_LIBS
343