[Buildroot] [PATCH 07/13] package/flutter-packages/flutter-rfw-local-example: new package
Adam Duskett
adam.duskett at amarulasolutions.com
Sun Mar 24 22:50:46 UTC 2024
Displays a custom "Hello, World!" custom widget in a
remote Flutter widget (RFW) for use by a remote widget.
Signed-off-by: Adam Duskett <adam.duskett at amarulasolutions.com>
---
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 80dd061469..38079407c5 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..9718b222f0
--- /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_BUILD_DIR = $(@D)/packages/rfw/example/local
+
+define FLUTTER_RFW_LOCAL_EXAMPLE_CONFIGURE_CMDS
+ cd $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILD_DIR) && \
+ $(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_BUILD_DIR) && \
+ $(HOST_FLUTTER_SDK_BIN_DART_BIN) \
+ --native-assets $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILD_DIR)/.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_BUILD_DIR)/build/flutter_assets $(FLUTTER_RFW_LOCAL_EXAMPLE_INSTALL_DIR)/data/
+
+ $(INSTALL) -D -m 0755 $(FLUTTER_RFW_LOCAL_EXAMPLE_BUILD_DIR)/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))
--
2.44.0
More information about the buildroot
mailing list