################################################################################
#
# x11vnc
#
################################################################################

X11VNC_VERSION = 0.9.16
X11VNC_SITE = $(call github,LibVNC,x11vnc,$(X11VNC_VERSION))
# sdl support is not used in x11vnc, but host include / library search paths
# leak in if host has sdl-config
X11VNC_CONF_OPTS = --without-sdl
X11VNC_DEPENDENCIES = xlib_libXt xlib_libXext xlib_libXtst libvncserver
X11VNC_LICENSE = GPL-2.0+
X11VNC_LICENSE_FILES = COPYING
X11VNC_CPE_ID_VENDOR = x11vnc_project
# 0002-scan-limit-access-to-shared-memory-segments-to-current-user.patch
X11VNC_IGNORE_CVES += CVE-2020-29074

# Source coming from github, no configure included
X11VNC_AUTORECONF = YES

ifeq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yy)
X11VNC_DEPENDENCIES += avahi dbus
else
X11VNC_CONF_OPTS += --without-avahi
endif

ifeq ($(BR2_PACKAGE_JPEG),y)
X11VNC_DEPENDENCIES += jpeg
else
X11VNC_CONF_OPTS += --without-jpeg
endif

ifeq ($(BR2_PACKAGE_OPENSSL),y)
X11VNC_DEPENDENCIES += openssl
else
X11VNC_CONF_OPTS += --without-ssl --without-crypto
endif

ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
X11VNC_DEPENDENCIES += xlib_libXinerama
else
X11VNC_CONF_OPTS += --without-xinerama
endif

ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
X11VNC_DEPENDENCIES += xlib_libXrandr
else
X11VNC_CONF_OPTS += --without-xrandr
endif

ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
X11VNC_DEPENDENCIES += xlib_libXfixes
else
X11VNC_CONF_OPTS += --without-xfixes
endif

ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
X11VNC_DEPENDENCIES += xlib_libXdamage
else
X11VNC_CONF_OPTS += --without-xdamage
endif

ifeq ($(BR2_PACKAGE_ZLIB),y)
X11VNC_DEPENDENCIES += zlib
else
X11VNC_CONF_OPTS += --without-zlib
endif

$(eval $(autotools-package))
