config BR2_PACKAGE_LIBIIO
	bool "libiio"
	select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND if !BR2_PACKAGE_LIBIIO_XML_BACKEND
	help
	  Libiio is a library to ease the development of software
	  interfacing Linux Industrial I/O (IIO) devices.

	  http://wiki.analog.com/resources/tools-software/linux-software/libiio

if BR2_PACKAGE_LIBIIO

config BR2_PACKAGE_LIBIIO_LOCAL_BACKEND
	bool "Local backend"
	default y
	help
	  Enable the local backend of the library.

config BR2_PACKAGE_LIBIIO_XML_BACKEND
	bool "XML backend"
	default y
	select BR2_PACKAGE_LIBXML2
	help
	  Enable the XML backend of the library.

config BR2_PACKAGE_LIBIIO_NETWORK_BACKEND
	bool "Network backend"
	default y
	select BR2_PACKAGE_LIBIIO_XML_BACKEND
	help
	  Enable the network backend of the library.

config BR2_PACKAGE_LIBIIO_USB_BACKEND
	bool "USB backend"
	default y
	depends on BR2_TOOLCHAIN_HAS_THREADS # from libusb
	select BR2_PACKAGE_LIBIIO_XML_BACKEND
	select BR2_PACKAGE_LIBUSB
	help
	  Enable the USB backend of the library.

comment "The USB backend needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_LIBIIO_SERIAL_BACKEND
	bool "Serial backend"
	default y
	select BR2_PACKAGE_LIBIIO_XML_BACKEND
	select BR2_PACKAGE_LIBSERIALPORT
	help
	  Enable the serial backend of the library.

config BR2_PACKAGE_LIBIIO_IIOD
	bool "IIO Daemon"
	default y
	depends on BR2_TOOLCHAIN_HAS_THREADS
	select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND
	help
	  Install the IIO Daemon.

config BR2_PACKAGE_LIBIIO_IIOD_USBD
	bool "USB support in the IIO Daemon (FunctionFS)"
	depends on BR2_PACKAGE_LIBIIO_IIOD
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # usb_functionfs_descs_head_v2
	select BR2_PACKAGE_LIBAIO
	help
	  Add support for USB through FunctionFS with IIOD.

comment "USB support in the IIO Daemon requires headers >= 3.18"
	depends on BR2_PACKAGE_LIBIIO_IIOD
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18

comment "IIO Daemon needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_LIBIIO_TESTS
	bool "Install test programs"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	help
	  Install the test programs (iio_info, iio_genxml, iio_readdev).

comment "IIO test programs need a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_LIBIIO_BINDINGS_CSHARP
	bool "Install C# bindings"
	depends on BR2_PACKAGE_MONO
	help
	  Install the C# bindings.

config BR2_PACKAGE_LIBIIO_BINDINGS_PYTHON
	bool "Install Python bindings"
	depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
	help
	  Install the Python bindings.

endif
