Message ID | 20240325223424.108702-7-adam.duskett@amarulasolutions.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2,01/13] package/flutter-packages/flutter-markdown-example: new package | expand |
On 25/03/2024 23:34, Adam Duskett wrote: > 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> > --- [snip] > 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 Why is this simply "local" instead of the more relevant (and consistent with the others) "flutter_rfw_local_example"? Regards, Arnout > +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))
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..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))
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> --- v1 -> v2: Use SUBDIR and BUILDDIR [Arnout] 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