All Projects → chinmaygarde → flutter_from_scratch

chinmaygarde / flutter_from_scratch

Licence: other
A minimal Flutter Embedder from Scratch.

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to flutter from scratch

CFI-LB
Adaptive Callsite-sensitive Control Flow Integrity - EuroS&P'19
Stars: ✭ 13 (-89.34%)
Mutual labels:  clang
core-review
Scripts, tools & info for doing Bitcoin Core development and code review
Stars: ✭ 78 (-36.07%)
Mutual labels:  clang
efi-clang
Build UEFI applications with the Clang compiler and LLD linker.
Stars: ✭ 40 (-67.21%)
Mutual labels:  clang
vscode-clang-complete
Visual Studio Code C/C++ completion using Clang
Stars: ✭ 15 (-87.7%)
Mutual labels:  clang
cdetect
🔬 Detect which compiler and compiler version a Linux executable (in the ELF format) was compiled with
Stars: ✭ 23 (-81.15%)
Mutual labels:  clang
stack-guard
A toy implementation of 'Stack Guard' on top of the LLVM compiler toolchain
Stars: ✭ 21 (-82.79%)
Mutual labels:  clang
bootstrap
Bootstrap Go bindings for Clang's C API
Stars: ✭ 18 (-85.25%)
Mutual labels:  clang
setup-clang
GitHub action to set up Clang & LLVM
Stars: ✭ 28 (-77.05%)
Mutual labels:  clang
opencilk-project
Monorepo for the OpenCilk compiler, forked from llvm/llvm-project. See the OpenCilk/infrastructure repository for build and installation instructions.
Stars: ✭ 42 (-65.57%)
Mutual labels:  clang
cpp-compiler-options
Compilation options for different versions of Clang, GCC and MSVC. Provided a generator and different file formats (cmake, xmake, meson, premake5, bjam/b2, ...)
Stars: ✭ 19 (-84.43%)
Mutual labels:  clang
CastXMLSuperbuild
Build CastXML and its dependencies (LLVM/Clang)
Stars: ✭ 32 (-73.77%)
Mutual labels:  clang
ci playground
Playground for Cloud CI development for C++
Stars: ✭ 23 (-81.15%)
Mutual labels:  clang
lsif-clang
Language Server Indexing Format (LSIF) generator for C, C++ and Objective C
Stars: ✭ 28 (-77.05%)
Mutual labels:  clang
rebuild
Zero-dependency, reproducible build environments
Stars: ✭ 48 (-60.66%)
Mutual labels:  clang
gn
Standalone version of Chromium's GN
Stars: ✭ 81 (-33.61%)
Mutual labels:  gn
cpu-scheduling-simulator
⚙️Operating System CPU Scheduling Simulator😄
Stars: ✭ 20 (-83.61%)
Mutual labels:  clang
lldbg
A lightweight native GUI for LLDB.
Stars: ✭ 83 (-31.97%)
Mutual labels:  clang
hmg
💝 My personal Gentoo/Linux configuration backup files
Stars: ✭ 16 (-86.89%)
Mutual labels:  clang
wasm-toolchain
WebAssembly toolchain
Stars: ✭ 34 (-72.13%)
Mutual labels:  clang
dist-clang
Distributed [cross-]compilation for Clang
Stars: ✭ 31 (-74.59%)
Mutual labels:  clang

Notes:

  • This is the companion repository for the Flutter on Raspberry Pi (mostly) from Scratch article.
  • This repository is only meant to showcase what a minimal embedder might look like. It is not production ready (and never will be)!
  • Though this repository is based off of the Raspberry Pi Cross Compilation SDK and GN Sysroot repository. You dont have to use this toolchain or GN.

Flutter on Raspberry Pi

Flutter Embedder for Pi using Broadcom APIs directly.

Prerequisites

  • The libflutter_engine.so, icudtl.dat and flutter_embedder.h files for the Raspberry Pi placed in the out/ directory.

Usage for Raspberry Pi

  • Download the prepared toolchain, sysroot and related tools to the out directory ./tools/setup_sdk.sh.
    • This takes a while and downloads upto 1 GB of data from cloud storage.
  • Prepare the build output directory out with paths to your toolchain using ./tools/setup_gn.sh.
  • Build using ninja -C out on your host.
    • Hack and repeat.
  • Push your executable to the Raspberry Pi and run.
    • You should probably mount the out directory to the remote Raspberry Pi using SSHFS. That way, the build artifacts automatically end up getting pushed to the Pi.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].