menuconfig BR2_PACKAGE_FLUTTER_PI
	bool "flutter-pi"
	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
	depends on BR2_HOST_GCC_AT_LEAST_5 # flutter-engine
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # flutter-engine
	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # flutter-engine
	depends on BR2_TOOLCHAIN_USES_GLIBC # flutter-engine
	depends on BR2_INSTALL_LIBSTDCPP # flutter-engine
	depends on !BR2_STATIC_LIBS # flutter-engine, wayland
	depends on BR2_USE_WCHAR # flutter-engine
	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES # flutter-engine
	depends on BR2_PACKAGE_HAS_LIBGBM
	depends on BR2_PACKAGE_SYSTEMD # Event loop and dbus support
	depends on BR2_PACKAGE_HAS_UDEV # libinput
	select BR2_PACKAGE_HOST_FLUTTER_SDK_BIN
	select BR2_PACKAGE_FLUTTER_ENGINE
	select BR2_PACKAGE_LIBDRM
	select BR2_PACKAGE_LIBINPUT
	select BR2_PACKAGE_LIBXKBCOMMON
	help
	  A light-weight Flutter Engine Embedder. Flutter-pi also
	  runs without X11, so you don't need to boot into a
	  Desktop & have X11 or Wayland load up; just boot into the
	  command-line.

	  Although flutter-pi is only tested on a Rasberry Pi 4
	  2GB, it should work fine on other linux platforms supported
	  by Flutter so long as there is support for KMS and DRI.

	  https://github.com/ardera/flutter-pi

if BR2_PACKAGE_FLUTTER_PI

comment "plugins"

config BR2_PACKAGE_FLUTTER_PI_CHARSET_CONVERTER_PLUGIN
	bool "charset converter"
	help
	  Adds platform-side implementation of charset_converter plugin.

	  Encode and decode charsets using platform built-in converter.
	  This plugin saves app package size as you don't need external
	  charset maps or whole libraries like iconv.

	  https://pub.dev/packages/charset_converter

config BR2_PACKAGE_FLUTTER_PI_GSTREAMER_AUDIO_PLAYER_PLUGIN
	bool "gstreamer audio player"
	select BR2_PACKAGE_GSTREAMER1
	select BR2_PACKAGE_GST1_PLUGINS_BASE
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME
	help
	  Include the gstreamer based audio plugins in the finished
	  binary.

config BR2_PACKAGE_FLUTTER_PI_GSTREAMER_VIDEO_PLAYER_PLUGIN
	bool "gstreamer video player"
	depends on BR2_PACKAGE_HAS_LIBGLES
	select BR2_PACKAGE_GSTREAMER1
	select BR2_PACKAGE_GST1_PLUGINS_BASE
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL
	select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_GLES2
	select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERTSCALE
	help
	  Include the gstreamer based video plugins in the finished
	  binary. Allows for more stable, hardware accelerated
	  video playback in flutter using gstreamer.

comment "gstreamer video player plugin needs an OpenGL ES backend"
	depends on !BR2_PACKAGE_HAS_LIBGLES

config BR2_PACKAGE_FLUTTER_PI_RAW_KEYBOARD_PLUGIN
	bool "raw keyboard"
	help
	  Include the raw keyboard plugin in the finished binary.
	  Enables raw keycode listening in flutter via the flutter
	  RawKeyboard interface.

config BR2_PACKAGE_FLUTTER_PI_TEXT_INPUT_PLUGIN
	bool "text input"
	help
	  Include the text input plugin in the finished binary.
	  Enables text input (to flutter text fields, for example)
	  via attached keyboards.

endif

comment "flutter-pi needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5"
	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS \
		|| !BR2_USE_WCHAR || !BR2_HOST_GCC_AT_LEAST_5

comment "flutter-pi needs a toolchain not affected by GCC bug 64735"
	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735

comment "flutter-pi needs an OpenGL or OpenGLES backend"
	depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS
	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES

comment "flutter-pi needs GBM, systemd, and udev"
	depends on !BR2_PACKAGE_HAS_LIBGBM || \
		!BR2_PACKAGE_SYSTEMD || \
		!BR2_PACKAGE_HAS_UDEV
