sony/flutter-embedded-linux を使ってみる

要約

github.com

sony/flutter-embedded-linuxDebian 10 で使ってみた。

参考資料

環境

パッケージインストール

いくつかいらないパッケージもあるかもだけど

$ sudo apt -y install libnss-resolve libnss-systemd dbus-user-session policykit-1
$ sudo apt -y install weston xwayland xfonts-base fonts-vlgothic fonts-ipafont poppler-data
$ sudo apt -y vim
$ sudo apt -y git curl virtualenv
$ sudo apt -y install clang cmake build-essential pkg-config libegl1-mesa-dev libxkbcommon-dev libgles2-mesa-dev
$ sudo apt -y install libwayland-dev wayland-protocols
$ sudo apt -y install libgtk-3-dev ninja-build
$ sudo apt -y install python2

weston.ini

今回はもしかしたら必要ないかも?

[core]
xwayland=true
require-input=false
backend=drm-backend.so
modules=systemd-notify.so
use-pixman=true

[keyboard]
keymap_layout=jp

[shell]
#client=/usr/bin/weston-terminal
locking=false
animation=fade
allow-zap=true

Flutter Engine embedder のビルド

ビルドツールのインストール

$ cd ~
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=$PATH:~/depot_tools
$ virtualenv .env -p python2
$ source .env/bin/activate

.gclient ファイルの作成

最新バージョンを使用

solutions = [
  {
    "managed": False,
    "name": "src/flutter",
    "url": "https://github.com/flutter/engine.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]

ソースファイルを取得

$ cd ~
$ gclient sync
$ cd src
$ ./flutter/tools/gn --runtime-mode release --embedder-for-target
$ ninja -C out/host_release
$ cp ~/src/out/host_release/libflutter_engine.so /usr/lib

flutter-embedded-linux のビルド

$ cd ~
$ git clone https://github.com/sony/flutter-embedded-linux
$ cd flutter-embedded-linux
$ mkdir build
$ cd build
$ cp ~/src/out/host_release/libflutter_engine.so .
$ cmake -DUSER_PROJECT_PATH=examples/flutter-wayland-client ..
$ cmake --build .

Flutter アプリのビルド

Flutter のインストール

$ cd ~
$ git clone https://github.com/flutter/flutter
$ sudo mv flutter /opt/
$ export PATH=$PATH:/opt/flutter/bin
$ flutter config --enable-linux-desktop
$ flutter doctor

Flutter アプリのビルド

$ cd ~/flutter-embedded-linux
$ flutter create sample
$ cd sample/
$ flutter build linux
$ cd ..

Flutter アプリの実行

$ cd ~/flutter-embedded-linux/build
$ ./flutter-client ./sample/build/linux/x64/release/bundle

起動画面

f:id:bamch0h:20210417161915p:plain

まとめ

今回は Debian 10 で sony/flutter-embedded-linux を実行してみました。githubのREADMEに従ってやれば基本的には詰まることなく表示できました。