commit | d33334f811f194611200053594b39cad97ec2805 | [log] [tgz] |
---|---|---|
author | Alexander Biggs <akbiggs@google.com> | Wed Aug 17 04:32:38 2022 +0000 |
committer | Alexander Biggs <akbiggs@google.com> | Thu Aug 18 18:28:56 2022 +0000 |
tree | 4f095dc59e9e2a485ea86c488f672113f85fac6e | |
parent | 8bb3e67feb4417a09ef088824416fc04a0530c41 [diff] |
[embedder] Add commit hooks and bootstrap script. The Git commit hooks check for changes to the Fuchsia SDK as you pull updates to the embedder repo to warn you when your ffx version has changed in case you need to update running emulators etc. The hooks also look out for updates to the hooks themselves to let you know when there are new updates to the hooks to install. The bootstrap script removes a couple of steps of setup and warns you when KVM is not enabled, which is vital for working in the embedder repo. Change-Id: I41312994074ff465cbc4764e068f101c1d4beb3f
The Flutter Embedder for Fuchsia is a new in-progress runtime for Flutter apps on Fuchsia. This runtime is built on top of Flutter's embedder platform.
This repository is a work in progress and should be considered experimental.
Set $FUCHSIA_EMBEDDER_DIR
to your flutter-embedder.git checkout location, for example ~/flutter-embedder
.
export FUCHSIA_EMBEDDER_DIR=$HOME/flutter-embedder
Bootstrap the repository's dependencies:
$FUCHSIA_EMBEDDER_DIR/scripts/bootstrap.sh
This script initializes tools (including bazel
and ffx
), installs some Git hooks and downloads the workstation_eng.qemu-x64
product bundle, which you can use to run the examples below.
Start the emulator.
If running in a graphical environment:
$FUCHSIA_EMBEDDER_DIR/tools/ffx emu start workstation_eng.qemu-x64
If running in a terminal environment:
$FUCHSIA_EMBEDDER_DIR/tools/ffx emu start --headless workstation_eng.qemu-x64
(optional) Watch the device log in a separate window:
$FUCHSIA_EMBEDDER_DIR/tools/ffx log
Run an example app:
$FUCHSIA_EMBEDDER_DIR/scripts/build_and_run_example.sh hello_flutter
TODO(akbiggs): The app occasionally gets stuck on a loading screen instead of rendering. Re-running the app usually fixes it. We need to fix this.
Occasionally you will need to update the Flutter Engine artifacts (embedder.h
and libengine_flutter.so
) that are used by the embedder to run Flutter apps. A script is provided for this workflow.
$ENGINE_DIR
to the src
folder of your Flutter Engine checkout location, for example ~/engine/src
.$DEPOT_TOOLS
should be set to your depot_tools
location, for example ~/depot_tools
.git stash
or git commit
any local changes to the Flutter Engine or the script will fail.You can run the script with a flutter/engine
Git commit to sync the Engine artifacts to that revision.
$FUCHSIA_EMBEDDER_DIR/scripts/sync_engine_artifacts_to_revision.sh <ENGINE_COMMIT_SHA>
A common workflow is to sync your Engine commit to the Flutter tool in this repository, for example when updating the Flutter tool to a new version. To do this:
$FUCHSIA_EMBEDDER_DIR/scripts/sync_engine_artifacts_to_revision.sh $(cat $FUCHSIA_EMBEDDER_DIR/third_party/dart-pkg/internal/flutter/flutter/bin/internal/engine.version)