1config BR2_PACKAGE_KODI_ARCH_SUPPORTS
2	bool
3	default y if BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
4	# i386: needs sse (see upstream PR 10351)
5	depends on !(BR2_i386 && !BR2_X86_CPU_HAS_SSE)
6	depends on BR2_USE_MMU # libcdio, and others
7
8comment "kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x, host gcc >= 9.x"
9	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
10	depends on BR2_TOOLCHAIN_HAS_SYNC_4
11	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
12		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
13		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_9 \
14		|| !BR2_HOST_GCC_AT_LEAST_9 \
15		|| BR2_TOOLCHAIN_USES_MUSL \
16		|| !BR2_PACKAGE_PYTHON3 \
17		|| BR2_PACKAGE_PYTHON3_PYC_ONLY
18
19config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
20	bool
21
22config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
23	bool
24	default y
25	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
26	depends on BR2_PACKAGE_HAS_LIBGBM
27	depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
28	depends on BR2_PACKAGE_HAS_UDEV # libinput
29	select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
30	select BR2_PACKAGE_LIBDISPLAY_INFO
31
32comment "kodi needs udev support for gbm"
33	depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
34
35config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
36	bool
37	default y
38	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
39	depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND # waylandpp
40	depends on BR2_HOST_GCC_AT_LEAST_4_9 # waylandpp
41	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # waylandpp
42	depends on BR2_INSTALL_LIBSTDCPP # waylandpp
43	depends on BR2_PACKAGE_WAYLAND # waylandpp
44	select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
45
46config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11
47	bool
48	default y
49	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
50	depends on BR2_PACKAGE_XORG7
51	select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
52
53comment "kodi needs an OpenGL EGL backend with OpenGL or GLES support"
54	depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
55
56menuconfig BR2_PACKAGE_KODI
57	bool "kodi"
58	depends on BR2_INSTALL_LIBSTDCPP
59	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libass -> harfbuzz
60	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 # C++17
61	depends on BR2_HOST_GCC_AT_LEAST_9 # C++17
62	depends on BR2_TOOLCHAIN_HAS_THREADS
63	depends on !BR2_TOOLCHAIN_USES_MUSL
64	depends on BR2_USE_WCHAR
65	depends on !BR2_STATIC_LIBS # gnutls, python3 and others
66	depends on BR2_PACKAGE_HAS_LIBEGL
67	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
68	depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
69	depends on BR2_PACKAGE_PYTHON3
70	depends on !BR2_PACKAGE_PYTHON3_PYC_ONLY
71	select BR2_NEEDS_HOST_JAVA
72	select BR2_HOST_CMAKE_AT_LEAST_3_24
73	select BR2_PACKAGE_FFMPEG
74	select BR2_PACKAGE_FFMPEG_GPL
75	select BR2_PACKAGE_FFMPEG_POSTPROC
76	select BR2_PACKAGE_FFMPEG_SWSCALE
77	select BR2_PACKAGE_FLATBUFFERS
78	select BR2_PACKAGE_FMT
79	select BR2_PACKAGE_FONTCONFIG # needed for libass
80	select BR2_PACKAGE_FREETYPE
81	select BR2_PACKAGE_FSTRCMP
82	select BR2_PACKAGE_GIFLIB
83	select BR2_PACKAGE_JPEG
84	select BR2_PACKAGE_LIBASS
85	select BR2_PACKAGE_LIBCDIO
86	select BR2_PACKAGE_LIBCROSSGUID
87	select BR2_PACKAGE_LIBCURL
88	select BR2_PACKAGE_LIBDRM
89	select BR2_PACKAGE_LIBFRIBIDI
90	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
91	select BR2_PACKAGE_LIBICONV_EXTRA_ENCODINGS if !BR2_ENABLE_LOCALE
92	select BR2_PACKAGE_LIBPLIST
93	select BR2_PACKAGE_LIBPNG
94	select BR2_PACKAGE_LZO
95	select BR2_PACKAGE_OPENSSL
96	select BR2_PACKAGE_PCRE
97	select BR2_PACKAGE_PCRE_UCP
98	select BR2_PACKAGE_PYTHON3_2TO3
99	select BR2_PACKAGE_PYTHON3_PYEXPAT
100	select BR2_PACKAGE_PYTHON3_SQLITE
101	select BR2_PACKAGE_PYTHON3_SSL
102	select BR2_PACKAGE_PYTHON3_UNICODEDATA
103	select BR2_PACKAGE_PYTHON3_ZLIB
104	select BR2_PACKAGE_RAPIDJSON
105	select BR2_PACKAGE_SPDLOG
106	select BR2_PACKAGE_SQLITE
107	select BR2_PACKAGE_TAGLIB
108	select BR2_PACKAGE_TINYXML
109	select BR2_PACKAGE_TINYXML2
110	select BR2_PACKAGE_ZLIB
111	select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
112	select BR2_PACKAGE_LIBINPUT if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
113	select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
114	select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
115	select BR2_PACKAGE_WAYLANDPP if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
116	select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11
117	help
118	  Kodi is an award-winning free and open source (GPL) software
119	  media player and entertainment hub for digital media.
120
121	  http://kodi.tv
122
123if BR2_PACKAGE_KODI
124
125config BR2_PACKAGE_KODI_ALSA_LIB
126	bool "alsa"
127	select BR2_PACKAGE_ALSA_LIB
128	help
129	  Enable alsa support.
130
131config BR2_PACKAGE_KODI_AVAHI
132	bool "avahi"
133	select BR2_PACKAGE_AVAHI
134	select BR2_PACKAGE_AVAHI_DAEMON
135	help
136	  Enable Avahi support.
137	  Select this if you want Kodi to support Bonjour protocol.
138
139config BR2_PACKAGE_KODI_BLUEZ
140	bool "bluetooth"
141	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # bluez5_utils hid plugin
142	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils
143	select BR2_PACKAGE_BLUEZ5_UTILS
144	select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO
145	select BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID
146	help
147	    Enable bluetooth support
148
149comment "bluetooth support needs a toolchain w/ headers >= 3.18"
150	depends on BR2_TOOLCHAIN_HAS_SYNC_4
151	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
152
153config BR2_PACKAGE_KODI_DBUS
154	bool "dbus"
155	select BR2_PACKAGE_DBUS
156	help
157	  Enable D-Bus support
158
159config BR2_PACKAGE_KODI_EVENTCLIENTS
160	bool "eventclients"
161	help
162	  Enable event clients support
163
164	  https://github.com/xbmc/xbmc/blob/master/tools/EventClients/README.txt
165
166config BR2_PACKAGE_KODI_LIBBLURAY
167	bool "blu-ray"
168	select BR2_PACKAGE_LIBBLURAY
169	help
170	  Enable Blu-ray input support.
171	  Select this if you want to play back Blu-ray content.
172
173config BR2_PACKAGE_KODI_LIBCEC
174	bool "hdmi cec"
175	select BR2_PACKAGE_LIBCEC
176	help
177	  Enable CEC (Consumer Electronics Control) support.
178	  Select this if you want Kodi to support HDMI CEC.
179
180config BR2_PACKAGE_KODI_LCMS2
181	bool "lcms2"
182	select BR2_PACKAGE_LCMS2
183	help
184	  Enable color management support.
185
186config BR2_PACKAGE_KODI_LIBMICROHTTPD
187	bool "web server"
188	select BR2_PACKAGE_LIBMICROHTTPD
189	help
190	  Enable webserver feature
191
192config BR2_PACKAGE_KODI_LIBNFS
193	bool "nfs"
194	# libnfs -> libtirpc
195	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS
196	select BR2_PACKAGE_LIBNFS
197	help
198	  Enable NFS server support.
199
200comment "nfs support needs a toolchain w/ threads support"
201	depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC)
202
203config BR2_PACKAGE_KODI_MYSQL
204	bool "mysql"
205	select BR2_PACKAGE_MARIADB
206	help
207	  Enable MySQL support
208
209choice
210	prompt "render system"
211	default BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
212
213config BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
214	bool "OpenGL"
215	depends on BR2_PACKAGE_HAS_LIBGL
216	select BR2_PACKAGE_LIBGLU
217
218config BR2_PACKAGE_KODI_RENDER_SYSTEM_GLES
219	bool "GLES"
220	depends on BR2_PACKAGE_HAS_LIBGLES
221
222endchoice
223
224config BR2_PACKAGE_KODI_PIPEWIRE
225	bool "pipewire"
226	depends on BR2_PACKAGE_PIPEWIRE
227	help
228	  Enable Pipewire support.
229
230config BR2_PACKAGE_KODI_PULSEAUDIO
231	bool "pulseaudio"
232	depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
233	# Pulseaudio support in kodi needs glib support in Pulseaudio,
234	# see FindPulseAudio.cmake. Kodi meets all dependencies of
235	# libglib2, so there is no need to propagate them here.
236	select BR2_PACKAGE_LIBGLIB2
237	select BR2_PACKAGE_PULSEAUDIO
238	help
239	  Enable Pulseaudio support.
240
241config BR2_PACKAGE_KODI_LIBSHAIRPLAY
242	bool "shairport"
243	select BR2_PACKAGE_LIBSHAIRPLAY
244	help
245	  Enable Shairport support.
246	  Select this if you want to stream content from an Apple
247	  device.
248
249config BR2_PACKAGE_KODI_LIBSMBCLIENT
250	bool "samba"
251	depends on BR2_PACKAGE_SAMBA4
252	help
253	  Enable Samba support
254
255config BR2_PACKAGE_KODI_LIBUSB
256	bool "usb"
257	# https://github.com/xbmc/xbmc/blob/Jarvis/configure.ac#L1554
258	# "if libudev is available, we don't need libusb"
259	depends on !BR2_PACKAGE_HAS_UDEV
260	select BR2_PACKAGE_LIBUSB
261	select BR2_PACKAGE_LIBUSB_COMPAT
262	help
263	  Enable libusb support.
264
265config BR2_PACKAGE_KODI_LIBVDPAU
266	bool "vdpau"
267	depends on BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 && \
268		BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
269	select BR2_PACKAGE_LIBVDPAU
270	help
271	  Enable libvdpau support.
272
273comment "libvdpau support needs platform 'X11/OpenGL'"
274	depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_X11 || \
275		!BR2_PACKAGE_KODI_RENDER_SYSTEM_GL
276
277config BR2_PACKAGE_KODI_UPNP
278	bool "upnp"
279	help
280	  Enable UPnP support
281
282config BR2_PACKAGE_KODI_OPTICALDRIVE
283	bool "optical drives"
284	help
285	  Add support for optical drives, to read e.g. DVDs...
286
287menu "Audio decoder addons"
288	source "package/kodi-audiodecoder-modplug/Config.in"
289	source "package/kodi-audiodecoder-nosefart/Config.in"
290	source "package/kodi-audiodecoder-sidplay/Config.in"
291	source "package/kodi-audiodecoder-snesapu/Config.in"
292	source "package/kodi-audiodecoder-stsound/Config.in"
293	source "package/kodi-audiodecoder-timidity/Config.in"
294	source "package/kodi-audiodecoder-vgmstream/Config.in"
295endmenu
296
297menu "Audio encoder addons"
298	source "package/kodi-audioencoder-flac/Config.in"
299	source "package/kodi-audioencoder-lame/Config.in"
300	source "package/kodi-audioencoder-vorbis/Config.in"
301	source "package/kodi-audioencoder-wav/Config.in"
302endmenu
303
304menu "Image decoder addons"
305	source "package/kodi-imagedecoder-heif/Config.in"
306	source "package/kodi-imagedecoder-raw/Config.in"
307endmenu
308
309menu "Peripheral addons"
310	source "package/kodi-peripheral-joystick/Config.in"
311	source "package/kodi-peripheral-xarcade/Config.in"
312endmenu
313
314menu "Inputstream addons"
315	source "package/kodi-inputstream-adaptive/Config.in"
316	source "package/kodi-inputstream-ffmpegdirect/Config.in"
317	source "package/kodi-inputstream-rtmp/Config.in"
318endmenu
319
320menu "PVR addons"
321	source "package/kodi-pvr-argustv/Config.in"
322	source "package/kodi-pvr-dvblink/Config.in"
323	source "package/kodi-pvr-dvbviewer/Config.in"
324	source "package/kodi-pvr-filmon/Config.in"
325	source "package/kodi-pvr-hdhomerun/Config.in"
326	source "package/kodi-pvr-hts/Config.in"
327	source "package/kodi-pvr-iptvsimple/Config.in"
328	source "package/kodi-pvr-mediaportal-tvserver/Config.in"
329	source "package/kodi-pvr-mythtv/Config.in"
330	source "package/kodi-pvr-nextpvr/Config.in"
331	source "package/kodi-pvr-njoy/Config.in"
332	source "package/kodi-pvr-octonet/Config.in"
333	source "package/kodi-pvr-pctv/Config.in"
334	source "package/kodi-pvr-plutotv/Config.in"
335	source "package/kodi-pvr-stalker/Config.in"
336	source "package/kodi-pvr-vbox/Config.in"
337	source "package/kodi-pvr-vdr-vnsi/Config.in"
338	source "package/kodi-pvr-vuplus/Config.in"
339	source "package/kodi-pvr-waipu/Config.in"
340	source "package/kodi-pvr-wmc/Config.in"
341	source "package/kodi-pvr-zattoo/Config.in"
342endmenu
343
344menu "Screensavers"
345	source "package/kodi-screensaver-asteroids/Config.in"
346	source "package/kodi-screensaver-asterwave/Config.in"
347	source "package/kodi-screensaver-biogenesis/Config.in"
348	source "package/kodi-screensaver-cpblobs/Config.in"
349	source "package/kodi-screensaver-greynetic/Config.in"
350	source "package/kodi-screensaver-matrixtrails/Config.in"
351	source "package/kodi-screensaver-pingpong/Config.in"
352	source "package/kodi-screensaver-pyro/Config.in"
353	source "package/kodi-screensaver-rsxs/Config.in"
354	source "package/kodi-screensaver-stars/Config.in"
355endmenu
356
357menu "Skins"
358	source "package/kodi-skin-confluence/Config.in"
359endmenu
360
361menu "Virtual file systems"
362	source "package/kodi-vfs-libarchive/Config.in"
363	source "package/kodi-vfs-rar/Config.in"
364	source "package/kodi-vfs-sftp/Config.in"
365endmenu
366
367menu "Visualisations"
368	source "package/kodi-visualisation-fishbmc/Config.in"
369	source "package/kodi-visualisation-goom/Config.in"
370	source "package/kodi-visualisation-matrix/Config.in"
371	source "package/kodi-visualisation-shadertoy/Config.in"
372	source "package/kodi-visualisation-spectrum/Config.in"
373	source "package/kodi-visualisation-starburst/Config.in"
374	source "package/kodi-visualisation-waveform/Config.in"
375endmenu
376
377endif # BR2_PACKAGE_KODI
378