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
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # 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, gcc >= 4.9"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9

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
