From c51e0f4aec80ea71d812ff9956dc8214e7efdb7e Mon Sep 17 00:00:00 2001 From: Adam Duskett Date: Mon, 25 Mar 2024 16:34:18 -0600 Subject: [PATCH] package/flutter-packages/flutter-rfw-local-example: new package Displays a custom "Hello, World!" custom widget in a remote Flutter widget (RFW) for use by a remote widget. Signed-off-by: Adam Duskett Signed-off-by: Arnout Vandecappelle --- DEVELOPERS | 1 + package/flutter-packages/Config.in | 1 + .../flutter-rfw-local-example/Config.in | 7 +++ .../flutter-rfw-local-example.hash | 1 + .../flutter-rfw-local-example.mk | 54 +++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 package/flutter-packages/flutter-rfw-local-example/Config.in create mode 120000 package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.hash create mode 100644 package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.mk diff --git a/DEVELOPERS b/DEVELOPERS index d5ef02b7ad..a76bf350bf 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -40,6 +40,7 @@ F: package/flutter-packages/flutter-dynamic-layouts-example/ F: package/flutter-packages/flutter-go-router-example/ F: package/flutter-packages/flutter-image-example/ F: package/flutter-packages/flutter-markdown-example/ +F: package/flutter-packages/flutter-rfw-local-example/ F: package/flutter-pi/ F: package/flutter-sdk-bin/ F: package/ivi-homescreen/ diff --git a/package/flutter-packages/Config.in b/package/flutter-packages/Config.in index bfaccef264..4e3e29582f 100644 --- a/package/flutter-packages/Config.in +++ b/package/flutter-packages/Config.in @@ -13,6 +13,7 @@ source "package/flutter-packages/flutter-dynamic-layouts-example/Config.in" source "package/flutter-packages/flutter-go-router-example/Config.in" source "package/flutter-packages/flutter-image-example/Config.in" source "package/flutter-packages/flutter-markdown-example/Config.in" +source "package/flutter-packages/flutter-rfw-local-example/Config.in" endif comment "flutter packages need flutter-engine" diff --git a/package/flutter-packages/flutter-rfw-local-example/Config.in b/package/flutter-packages/flutter-rfw-local-example/Config.in new file mode 100644 index 0000000000..42324a1eaa --- /dev/null +++ b/package/flutter-packages/flutter-rfw-local-example/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_FLUTTER_RFW_LOCAL_EXAMPLE + bool "remote flutter widgets example" + help + This example shows how one can create custom widgets in an RFW + client, for use by remote widgets. + + https://github.com/flutter/packages/tree/main/packages/rfw/example/local diff --git a/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.hash b/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.hash new file mode 120000 index 0000000000..879f2adb39 --- /dev/null +++ b/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.hash @@ -0,0 +1 @@ +../flutter-packages.hash \ No newline at end of file diff --git a/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.mk b/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.mk new file mode 100644 index 0000000000..b57c021f8b --- /dev/null +++ b/package/flutter-packages/flutter-rfw-local-example/flutter-rfw-local-example.mk @@ -0,0 +1,54 @@ +################################################################################ +# +# flutter-rfw-local-example +# +################################################################################ + +FLUTTER_RFW_LOCAL_EXAMPLE_VERSION = $(FLUTTER_PACKAGES_VERSION) +FLUTTER_RFW_LOCAL_EXAMPLE_SITE = $(FLUTTER_PACKAGES_SITE) +FLUTTER_RFW_LOCAL_EXAMPLE_SITE_METHOD = $(FLUTTER_PACKAGES_SITE_METHOD) +FLUTTER_RFW_LOCAL_EXAMPLE_SOURCE = $(FLUTTER_PACKAGES_SOURCE) +FLUTTER_RFW_LOCAL_EXAMPLE_LICENSE = $(FLUTTER_PACKAGES_LICENSE) +FLUTTER_RFW_LOCAL_EXAMPLE_LICENSE_FILES = $(FLUTTER_PACKAGES_LICENSE_FILES) +FLUTTER_RFW_LOCAL_EXAMPLE_DL_SUBDIR = $(FLUTTER_PACKAGES_DL_SUBDIR) +FLUTTER_RFW_LOCAL_EXAMPLE_DEPENDENCIES = $(FLUTTER_PACKAGES_DEPENDENCIES) +FLUTTER_RFW_LOCAL_EXAMPLE_PKG_NAME = local +FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR = $(TARGET_DIR)/usr/share/flutter/rfw-$(FLUTTER_RFW_LOCAL_EXAMPLE_PKG_NAME)-example/$(FLUTTER_ENGINE_RUNTIME_MODE) +FLUTTER_RFW_LOCAL_EXAMPLE_SUBDIR = packages/rfw/example/local + +define FLUTTER_RFW_LOCAL_EXAMPLE_CONFIGURE_CMDS + cd $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILDDIR) && \ + $(HOST_FLUTTER_SDK_BIN_FLUTTER) clean && \ + $(HOST_FLUTTER_SDK_BIN_FLUTTER) pub get && \ + $(HOST_FLUTTER_SDK_BIN_FLUTTER) build bundle +endef + +define FLUTTER_RFW_LOCAL_EXAMPLE_BUILD_CMDS + cd $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILDDIR) && \ + $(HOST_FLUTTER_SDK_BIN_DART_BIN) \ + --native-assets $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILDDIR)/.dart_tool/flutter_build/*/native_assets.yaml \ + package:$(FLUTTER_RFW_LOCAL_EXAMPLE_PKG_NAME)/main.dart && \ + $(HOST_FLUTTER_SDK_BIN_ENV) $(FLUTTER_ENGINE_GEN_SNAPSHOT) \ + --deterministic \ + --obfuscate \ + --snapshot_kind=app-aot-elf \ + --elf=libapp.so \ + .dart_tool/flutter_build/*/app.dill +endef + +define FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_TARGET_CMDS + mkdir -p $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/{data,lib} + cp -dprf $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILDDIR)/build/flutter_assets $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/data/ + + $(INSTALL) -D -m 0755 $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILDDIR)/libapp.so \ + $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/lib/libapp.so + + ln -sf /usr/share/flutter/$(FLUTTER_ENGINE_RUNTIME_MODE)/data/icudtl.dat \ + $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/data/ + + ln -sf /usr/lib/libflutter_engine.so $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/lib/ + $(RM) $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/data/flutter_assets/kernel_blob.bin + touch $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/data/flutter_assets/kernel_blob.bin +endef + +$(eval $(generic-package))