* Change how sysroot is passed to CMake. In the CMake documentation, it is specified that the CMAKE_SYSROOT variable should be passed in toolchain file variable. It has no effect to set this variable in CMakeLists.txt like the current implementation. (This is why CMAKE_FIND_ROOT_PATH is needed.) The --sysroot option is not passed to the compiler in the current approach. This commit, instead, sets the sysroot variable in CMake command line arguments. This makes it effective, and no CMAKE_FIND_ROOT_PATH is needed. Moreover, it is not the duty of architecture to decide whether we are cross-compiling or not. For example, if I compile this on my Linux VM on mac M1 to i.MX8 processor, both host and target has the same arm64 architecture, but they doesn't share the same sysroot, so the standard cross-compile procedure should be followed. So, the real difference for cross-compile is that whether we share the same sysroot, rather than whether we have the same arch. So this commit changes the detection method to compare sysroot.
Flutter for Embedded Linux (eLinux)
This software is a non-official extension to the Flutter SDK to build and debug Flutter apps for Embedded Linux devices using flutter-embedded-linux, which is the flutter embedder for eLinux.
Features
- Flutter optimized for Embedded Systems
- Lightweight than Flutter desktop for Linux (Not using X11 and GTK)
- arm64/x64 devices support
- Minimal dependent libraries
- Embedded software development
- Cross-building from x64 to arm64 support
- Install/uninstall/debug to remote target devices
- Flutter plugins support
- Display backends
- Keyboard, mouse and touch inputs support
- Equivalent quality to Flutter desktops
- API compatibility with Flutter desktop for Windows and GLFW
- APIs such as MethodChannel and EventChannel are completely the same with them
If you want to know more details, see also flutter-embedded-linux.
Plugins
Flutter plugins for eLinux such as video_player and camera can be found at flutter-elinux-plugins.
User documentation
User documentation including quick start guides can be found at Wiki.
Contributing
Welcome to this project. We welcome all your contribution and feedback. See: CONTRIBUTING.md.
Quick start
Install flutter-elinux
$ git clone https://github.com/sony/flutter-elinux.git
$ sudo mv flutter-elinux /opt/
$ export PATH=$PATH:/opt/flutter-elinux/bin
Install required tools
$ sudo apt install unzip curl clang cmake pkg-config
Run Flutter sample app in Weston
You need to install a Wayland compositor such as Weston and launch it before launching your Flutter apps. Note that if you use Weston, Weston version 8.0 or above recommended. See also: Support status
$ sudo apt install weston
$ weston &
$ flutter-elinux devices
2 connected devices:
eLinux (desktop) • elinux-wayland • flutter-tester • Ubuntu 20.04.2 LTS 5.8.0-63-generic
eLinux (desktop) • elinux-x11 • flutter-tester • Ubuntu 20.04.2 LTS 5.8.0-63-generic
$ flutter-elinux create sample
$ cd sample
$ flutter-elinux run -d elinux-wayland
If you want to run your flutter app in X11, use elinux-x11 instead of elinux-wayland:
$ flutter-elinux run -d elinux-x11
Companion repos
| Repo | Purpose |
|---|---|
| flutter-elinux-plugins | Flutter plugins for eLinux |
| flutter-embedded-linux | eLinux embedding for Flutter |
| meta-flutter | Yocto recipes of eLinux embedding for Flutter |
Base software
This software was created by branching from flutter-tizen (branched from this version). Special thanks to the flutter-tizen team.
