config BR2_PACKAGE_WIRESHARK
	bool "wireshark"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt -> libgpg-error
	depends on !BR2_STATIC_LIBS
	depends on BR2_USE_MMU # fork(), glib2
	depends on BR2_USE_WCHAR # glib2
	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
	depends on BR2_INSTALL_LIBSTDCPP
	select BR2_PACKAGE_C_ARES
	select BR2_PACKAGE_LIBPCAP
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_LIBGLIB2
	select BR2_PACKAGE_PCRE2
	select BR2_PACKAGE_SPEEXDSP
	help
	  Network traffic sniffer and protocol decoder.

	  https://www.wireshark.org

if BR2_PACKAGE_WIRESHARK

config BR2_PACKAGE_WIRESHARK_GUI
	bool "Qt5 GUI"
	default y
	depends on BR2_INSTALL_LIBSTDCPP # qt5
	depends on BR2_HOST_GCC_AT_LEAST_5 # qt5
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qt5
	depends on BR2_PACKAGE_HAS_UDEV # qt5 input
	select BR2_PACKAGE_QT5
	select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime
	select BR2_PACKAGE_QT5BASE_PNG # runtime
	select BR2_PACKAGE_QT5BASE_WIDGETS
	select BR2_PACKAGE_QT5MULTIMEDIA
	select BR2_PACKAGE_QT5SVG
	select BR2_PACKAGE_QT5TOOLS
	select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS
	help
	  Enable Qt5 GUI

comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL, host gcc >= 5.0, gcc >= 5.0"
	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
		!BR2_HOST_GCC_AT_LEAST_5

endif # BR2_PACKAGE_WIRESHARK

comment "wireshark needs a toolchain w/ wchar, threads, dynamic library, C++"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
		BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP
