Writing this thing because its a pain setting up the repo + the docs are outdated.


  1. Make sure that you don’t have any flutter executable in your PATH.
  2. Install python3 git depot_tools Visual Studio 2017Windows 10 SDK` (required for non-Googlers only). Make sure to install the “Debugging Tools for Windows” feature.

  3. git clone https://github.com/flutter/flutter.git

  4. cd flutter

  5. git remote rename origin upstream

  6. Fork flutter and change the origin to your fork: git remote add origin [email protected]:\/flutter.git

  7. Add flutter/bin to PATH.

Image description

  1. make sure flutter is in your PATH where.exe flutter you'd might need to restart your terminal

Image description


Setting up the engine development environment

  1. Add these to your env vars:
    • DEPOT_TOOLS_WIN_TOOLCHAIN=0
    • GYP_MSVS_OVERRIDE_PATH=C:\Program Files\Microsoft Visual Studio\2022\Community (make sure the path is correct)
  2. cd flutter/engine
  3. cp .\scripts\standard.gclient ../.gclient copy to root folder (before engine)
  4. cd ../ and run gclient sync
  5. Flutter has a tool for building the engine called et. Add it to PATH: C:\Users\temp\Desktop\flutter\engine\src\flutter\bin
  6. cd into flutter/engine and run et build to build the engine. (make sure et is in your PATH)
  7. Go make some ☕️ 🕐
  8. In the mean time, you can configure your VS Code C++ LSP. I suggest that you first disable Dart and Flutter extensions in order to avoid them running commands you don’t want.
  9. What should be done is:
    1. Open Code in flutter/engine and make sure you have the ms-vscode.cpptools extension installed.
    2. Configure VS Code to use compile_commands.json, which should be in C:\Users\temp\Desktop\flutter\engine\src\out\host_debug.

Image description

  1. After several years et build should finish successfully, if not, don't start making changes you'd regret that later.
  2. Implement your patches and create a PR on Flutter. Remember that Flutter's team requires signed commits… ___ ### Running Flutter projects with your custom engine

as per flutter docs on GH you should use et run inside your project (as if it was flutter run ) although for some reason it didn't worked for me, so I instead ran the et tool directly like so
ps
dart C:\Users\temp\Desktop\flutter\engine\src\flutter\tools\engine_tool\bin\et.dart run