mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Creates a config for iOS test targets, which includes framework, library, and swiftmodule paths for for XCTest and other SDK testing libraries. This patch: * Merges `config_ios` and `config_swift`. `config_swift` was equivalent to `config_ios` but just with additional `swiftargs`. Since `swiftargs` is ignored in Obj-C targets, we can just merge the two for simplicity. * Adds a `config_ios_test` which adds: * `$ios_platform_path/Developer/Library/Frameworks` to the framework search path, used for XCTest.framework in Obj-C/Swift builds. * `$ios_platform_path/Developer/usr/lib` to the include path, use for XCTest.swiftmodule in Swift builds. * `$ios_platform_path/Developer/usr/lib` to the lib dirs used by the linker when building Swift code. Note that we manually pass the `-F` flag via `cflags` (Obj-C) and `swiftflags` (Swift) for the framework search path _as well as_ via the more general `framework_dirs` param. This is because our macOS/iOS compiler toolchain doesn't correctly translate `framework_dirs` into the compiler invocation for either Obj-C or Swift builds, _but_ it's correctly passed to linker invocations in our toolchain. As a followup, I'll update our toolchain to translate the contents of `framework_dirs` to the appropriate `-F` flags passed to the compilers. Issue: https://github.com/flutter/flutter/issues/167592 ## 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
Flutter Engine
Setting up the Engine development environment
See here
gclient bootstrap
Flutter engine uses gclient to manage dependencies.
If you've already cloned the flutter repository: