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 <adam.duskett@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
Adam Duskett 2024-03-25 16:34:18 -06:00 committed by Arnout Vandecappelle
parent 83c1ba5f44
commit c51e0f4aec
5 changed files with 64 additions and 0 deletions

View File

@ -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/

View File

@ -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"

View File

@ -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

View File

@ -0,0 +1 @@
../flutter-packages.hash

View File

@ -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))