gaaclarke 230b2e5aa9
Impeller gemini md (#172724)
Added gemini.md file for impeller and tweaked the root gemini.md.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-07-30 16:37:00 +00:00

1.4 KiB

Flutter Engine

This project contains the engine for Flutter. GN is used as the build system and there are many targets. The engine is built for the local ("host") platform but also built for the the target platform (ex. iOS or Android).

The tool at ./bin/et is used as a wrapper around GN and ninja to easily build targets. The results are placed in "../out/<config name>". Build config names describe the target platform, but also codify the optimization level and the target architecture. For example, when developing on an arm64 mac, host_debug_unopt_arm64 is the most likely configuration for testing.

For testing there are numerous test runners. How they are run locally is documented in ./testing/run_tests.py.

This project lives as a subdirectory of the flutter github project at https://github.com/flutter/flutter.

Directories

  • ./ci - necessary data for continuous integration
  • ./fml - low-level cross-platform helper classes
  • ./impeller - a 2d renderer
  • ./lib - Contains the engine's Dart code (dart:ui).
  • ./shell - contains the embedders for each target platform
  • ./third-party - 3rd party dependencies which are copied here with depot tools.
  • ./tools - tools used for assisting engine development

Style

  • The Google C++ Style Guide is used for C++.
  • C++ docstrings are in the Doxygen format.
  • Prefer functions that are less than 30 lines long.