@@ -32,6 +32,7 @@ F: package/firewalld/
N: Adam Duskett <adam.duskett@amarulasolutions.com>
F: package/depot-tools/
F: package/flutter-engine/
+F: package/flutter-pi/
F: package/flutter-sdk-bin/
N: Adam Heinrich <adam@adamh.cz>
@@ -343,6 +343,7 @@ comment "Graphic libraries"
source "package/fbset/Config.in"
source "package/fbterm/Config.in"
source "package/fbv/Config.in"
+ source "package/flutter-pi/Config.in"
source "package/freerdp/Config.in"
source "package/graphicsmagick/Config.in"
source "package/imagemagick/Config.in"
new file mode 100644
@@ -0,0 +1,41 @@
+config BR2_PACKAGE_FLUTTER_PI
+ bool "flutter-pi"
+ depends on BR2_PACKAGE_FLUTTER_ENGINE
+ depends on BR2_PACKAGE_SYSTEMD # Event loop and dbus support
+ 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
+
+config BR2_PACKAGE_FLUTTER_PI_TEXT_INPUT_PLUGIN
+ bool "text input plugin"
+ help
+ Include the text input plugin in the finished binary.
+ Enables text input (to flutter text fields, for example)
+ via attached keyboards.
+
+config BR2_PACKAGE_FLUTTER_PI_KEYBOARD_PLUGIN
+ bool "keyboard plugin"
+ help
+ Include the raw keyboard plugin in the finished binary.
+ Enables raw keycode listening in flutter via the flutter
+ RawKeyboard interface.
+
+endif
+
+comment "flutter-pi needs flutter-engine"
+ depends on !BR2_PACKAGE_FLUTTER_ENGINE
+
+comment "flutter-pi needs systemd"
+ depends on !BR2_PACKAGE_SYSTEMD
new file mode 100644
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 06b5544c8538bb4a56cb49aa91e97bc0e319ca95a53414c8cfcc78aad2fda616 flutter-pi-004efdaa31bb9ca97938a6b05695496163fe1179-br1.tar.gz
+sha256 b34df9d3e1b4e5d1ba70b1740ec74b69f1189b44efd0c96b898b074ef8db1c70 LICENSE
new file mode 100644
@@ -0,0 +1,52 @@
+################################################################################
+#
+# flutter-pi
+#
+################################################################################
+
+FLUTTER_PI_VERSION = 004efdaa31bb9ca97938a6b05695496163fe1179
+FLUTTER_PI_SITE = https://github.com/ardera/flutter-pi.git
+FLUTTER_PI_SITE_METHOD = git
+FLUTTER_PI_LICENSE = MIT
+FLUTTER_PI_LICENSE_FILES = LICENSE
+FLUTTER_PI_DEPENDENCIES = \
+ flutter-engine \
+ libinput \
+ libxkbcommon \
+ systemd
+
+FLUTTER_PI_CONF_OPTS = \
+ -DFLUTTER_EMBEDDER_HEADER=$(STAGING_DIR)/usr/include/flutter_embedder.h
+
+ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy)
+FLUTTER_PI_DEPENDENCIES += gstreamer1 gst1-plugins-base
+FLUTTER_PI_CONF_OPTS += -DBUILD_GSTREAMER_VIDEO_PLAYER_PLUGIN=ON
+else
+FLUTTER_PI_CONF_OPTS += -DBUILD_GSTREAMER_VIDEO_PLAYER_PLUGIN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_FLUTTER_PI_INPUT_PLUGIN),y)
+FLUTTER_PI_DEPENDENCIES += libinput libxkbcommon
+FLUTTER_PI_CONF_OPTS += -DBUILD_TEXT_INPUT_PLUGIN=ON
+else
+FLUTTER_PI_CONF_OPTS += -DBUILD_TEXT_INPUT_PLUGIN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_FLUTTER_PI_KEYBOARD_PLUGIN),y)
+FLUTTER_PI_CONF_OPTS += -DBUILD_RAW_KEYBOARD_PLUGIN=ON
+else
+FLUTTER_PI_CONF_OPTS += -DBUILD_RAW_KEYBOARD_PLUGIN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OMXPLAYER),y)
+FLUTTER_PI_DEPENDENCIES += omxplayer
+FLUTTER_PI_CONF_OPTS += \
+ -DBUILD_OMXPLAYER_VIDEO_PLAYER_PLUGIN=ON \
+ -DOMXPLAYER_SUPPORTS_RUNTIME_ROTATION=ON
+else
+FLUTTER_PI_CONF_OPTS += \
+ -DBUILD_OMXPLAYER_VIDEO_PLAYER_PLUGIN=OFF \
+ -DOMXPLAYER_SUPPORTS_RUNTIME_ROTATION=OFF
+endif
+
+$(eval $(cmake-package))
flutter-pi is one of many flutter-embedders. However, flutter-pi is unique because it doesn't require X or Wayland to run. So long as there is support for KMS and DRI flutter-pi should run on any platform that flutter-engine supports. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- DEVELOPERS | 1 + package/Config.in | 1 + package/flutter-pi/Config.in | 41 +++++++++++++++++++++++ package/flutter-pi/flutter-pi.hash | 3 ++ package/flutter-pi/flutter-pi.mk | 52 ++++++++++++++++++++++++++++++ 5 files changed, 98 insertions(+) create mode 100644 package/flutter-pi/Config.in create mode 100644 package/flutter-pi/flutter-pi.hash create mode 100644 package/flutter-pi/flutter-pi.mk