The Flutter embedder for Tizen.
- Linux (x64)
- depot_tools
- LLVM (17 or later)
- sudo apt install clang-17
 
- Additional dependencies
- sudo apt install git python3 rpm2cpio cpio
- sudo apt install binutils-arm-linux-gnueabi binutils-aarch64-linux-gnu binutils-i686-linux-gnu
 
- 
Create an empty directory called embedderandcdinto it.
- 
Create a .gclientfile by running:gclient config --name=src --unmanaged https://github.com/flutter-tizen/embedder 
- 
Run gclient syncto fetch all the source code and dependencies.Note: gclient syncmust be run every time theDEPSfile (or thegenerate_sysroot.pyscript) is updated.
cd into the generated src directory and run the following commands.
- 
For arm tools/gn --target-cpu arm --target-toolchain /usr/lib/llvm-17 ninja -C out/tizen_arm 
- 
For arm64 tools/gn --target-cpu arm64 --target-toolchain /usr/lib/llvm-17 ninja -C out/tizen_arm64 
- 
For x86 tools/gn --target-cpu x86 --target-toolchain /usr/lib/llvm-17 ninja -C out/tizen_x86 
- To build an app (TPK) with the embedder generated in the above, copy the output artifacts (libflutter_tizen*.so) into the flutter-tizen tool's cached artifacts directory (flutter/bin/cache/artifacts/engine) and runflutter-tizen runorflutter-tizen build tpk.
- To use the embedder's built-in libc++ (third_party/libcxx) instead of the target device'slibstdc++.so, provide the--no-system-cxxoption totools/gn.
- Building NUI-related code requires a sysroot for Tizen 6.5 or above and the --api-version 6.5option.
This repository contains the following files and directories.
- //build- config: Contains GN configs for setting up the build environment for the toolchain.
- secondary: The secondary source tree to find input files for build. See the- .gnfile for details.
 
- //flutter- fml: A subset of the Flutter engine's fml library.
- shell/platform/common: Contains C++ client wrapper and other common code used by the embedder implementation. Copied from flutter/engine.
- shell/platform/embedder: Contains- embedder.hwhich defines a low-level API for interacting with the Flutter engine. Copied from flutter/engine.
- shell/platform/tizen: The Tizen embedder implementation.- channels: Internal plugins based on platform channels.
- public: The public API of the embedder.
 
- third_party/accessibility: A fork of the chromium accessibility library. Copied from flutter/engine.
 
- //tools- download_engine.py: A script to download engine artifacts required for linking. Executed as a hook by- gclient sync. The downloaded artifacts can be found in- //engine.
- generate_sysroot.py: A script to generate Tizen sysroots for arm/arm64/x86. Executed as a hook by- gclient sync. The sysroots are by default generated in- //sysroot.
- gn: A script to automate running- gn gen.
 
- .gn: The top-level- .gnfile referenced by- gn.
- DEPS: The DEPS file used by- gclient syncto install dependencies and execute hooks.