comment "spice server needs a toolchain w/ wchar, threads"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS

comment "spice server depends on python (for pyparsing)"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_PACKAGE_PYTHON

config BR2_PACKAGE_SPICE
	bool "spice server"
	depends on BR2_i386 || BR2_x86_64
	depends on BR2_PACKAGE_PYTHON
	depends on BR2_USE_WCHAR # libglib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
	select BR2_PACKAGE_ALSA_LIB
	select BR2_PACKAGE_CELT051
	select BR2_PACKAGE_JPEG
	select BR2_PACKAGE_LIBGLIB2
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_PIXMAN
	select BR2_PACKAGE_PYTHON_PYPARSING
	select BR2_PACKAGE_SPICE_PROTOCOL
	help
	  The Spice project aims to provide a complete open source
	  solution for interaction with virtualized desktop devices.
	  The Spice project deals with both the virtualized devices
	  and the front-end. Interaction between front-end and
	  back-end is done using VD-Interfaces.

	  This package implements the server-part of Spice.

	  http://www.spice-space.org/

if BR2_PACKAGE_SPICE

comment "client depends on X.org"
	depends on !BR2_PACKAGE_XORG7

config BR2_PACKAGE_SPICE_CLIENT
	bool "Enable client"
	depends on BR2_PACKAGE_XORG7
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_INSTALL_LIBSTDCPP
	select BR2_PACKAGE_XLIB_LIBXFIXES
	select BR2_PACKAGE_XLIB_LIBXRANDR

comment "client needs a toolchain w/ threads, C++"
	depends on BR2_PACKAGE_XORG7
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_SPICE_GUI
	bool "Enable GUI"
	depends on BR2_PACKAGE_SPICE_CLIENT
	depends on !BR2_STATIC_LIBS
	select BR2_PACKAGE_CEGUI06
	help
	  Say 'y' here to enable the Graphical User Interface (GUI)
	  start dialog.

comment "gui needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_SPICE_TUNNEL
	bool "Enable network redirection"
	select BR2_PACKAGE_SLIRP
	help
	  Say 'y' here to enable network redirection, aka tunnelling
	  through a SLIP/SLIRP session.

endif # BR2_PACKAGE_SPICE
