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
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.