Skip to content

iOS: extract config_ios_test#167958

Merged
auto-submit[bot] merged 1 commit into
flutter:masterfrom
cbracken:extract-ios-test-config
Apr 28, 2025
Merged

iOS: extract config_ios_test#167958
auto-submit[bot] merged 1 commit into
flutter:masterfrom
cbracken:extract-ios-test-config

Conversation

@cbracken

@cbracken cbracken commented Apr 28, 2025

Copy link
Copy Markdown
Member

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: #144791
Issue: #167592

Pre-launch Checklist

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

Creates a config for iOS test targets, which includes framework,
library, and swiftmodule paths for for XCTest and other SDK testing
libraries.

Issue: flutter#167592
@github-actions github-actions Bot added platform-ios iOS applications specifically engine flutter/engine related. See also e: labels. labels Apr 28, 2025
@cbracken cbracken requested a review from LouiseHsu April 28, 2025 21:40
@cbracken cbracken added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 28, 2025
@auto-submit auto-submit Bot added this pull request to the merge queue Apr 28, 2025
Merged via the queue into flutter:master with commit c5deaa2 Apr 28, 2025
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 28, 2025
@cbracken cbracken deleted the extract-ios-test-config branch April 28, 2025 23:44
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 29, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 29, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 29, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 4, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
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: flutter#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
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-ios iOS applications specifically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants