1049 Commits

Author SHA1 Message Date
Matan Lurey
8d8a108d8a Enable clang-tidy for pre-push (opt-out), exclude performance-unnecessary-value-param (flutter/engine#44936)
Closes https://github.com/flutter/flutter/issues/132687.

Zach, this is a pretty naive attempt, so feel free to suggest alternatives. I considered for example just using `--checks=-{{LINT}}` as well, but figured that might be less discoverable (especially for non-core folks) than just a file called `.clang-tidy-for-githooks`.

/cc @jonahwilliams
2023-08-23 01:02:23 +00:00
Matan Lurey
af5d8338a9 Disallow using ./tools/gn --enable-unittests --android (or --ios) (flutter/engine#44930)
Closes https://github.com/flutter/flutter/issues/132611.

As seen on https://github.com/flutter/flutter/issues/132611, this will
never succeed compiling.

I tried to update the Wiki as well:

https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment#vscode-with-cc-intellisense-cc
2023-08-21 20:20:01 -07:00
Greg Spencer
2bcecf60c9 Change Doxyfile options to not create subdirs (flutter/engine#44855)
## Description

This turns off the Doxyfile option `CREATE_SUBDIRS` because it prevents deep link URLs from being stable. It means that thousands of files will be in the main directory, but the filesystem should be able to handle that.

I got rid of the header/footer files for doxygen (because Doxygen will generate them anyhow) and fixed where it was looking for the Flutter logo.

I also ran Doxygen on the Doxyfile template and Doxyfile and updated all the options to correspond with the latest Doxygen.
2023-08-21 17:39:06 +00:00
Jackson Gardner
ab84ec613c Allow optional codepoints to be expressed to the font subset generator. (flutter/engine#44864)
This is the engine side change to fix https://github.com/flutter/flutter/issues/132711. There will be a subsequent framework change to express the space character as an "optional" character.
2023-08-18 22:08:10 +00:00
Greg Spencer
fc5b70b5d4 Add Doxygen doc generation for iOS, macOS, Linux, Windows, and Impeller (flutter/engine#43915)
## Description

This starts generating Doxygen docs for iOS, macOS, Linux, Windows, and Impeller. It doesn't remove the existing generation for iOS for now, until we can migrate the API docs to include these instead of those.

## Related Issues
 - https://github.com/flutter/flutter/issues/130999
 - Fixes https://github.com/flutter/flutter/issues/124833
2023-08-17 20:49:05 +00:00
Matan Lurey
809b6b8fa0 Passthrough stderr results of clang_tidy when --enable-check-profile. (flutter/engine#44789)
Required to actually see the results of the profile :)
2023-08-17 00:58:02 +00:00
Matan Lurey
c9246dfaf1 Add an optional '--enable-check-profile' to 'tools/clang_tidy'. (flutter/engine#44773)
Example usage:

```shell
$ dart tools/clang_tidy/bin/main.dart --lint-all --enable-check-profile
```

I plan to use this to help triage why clang_tidy takes so long, and if
particular rules are contributing to most of the cost.
2023-08-16 13:06:01 -07:00
Zachary Anderson
f8fb1ab5ea Update android_embedding_bundle CIPD instructions (flutter/engine#44644)
This PR updates the gradle build file for the android_embedding_bundle
cipd package to fetch license information about the dependencies listed
under `tools/androidx/files.json`. The README file for the
android_embedding_bundle now explains how to fetch the license
information and make sure it's correct in the cipd package.

This PR also pulls a new version of android_embedding_dependencies that
includes a `LICENSE` file.

It turns out that Flutter does not re-ship anything from the embedding
bundle to Flutter end-users. These dependencies are only used to create
a classpath against which we build the Android embedder and in-tree
tests. I've updated docs/comments to clarify that since I was initially
confused about how these were used.

I'm not adding a test that compares the license info fetched from maven
against a checked-in golden, yet. Still thinking about the most
effective way to do that in combination with the steps in the README.
2023-08-14 15:15:26 -07:00
Gray Mackall
8cce730f9b Fix name in description of 'create_cipd_packages.sh' (flutter/engine#44513)
The description uses an old name.

This PR also partly exists to spread awareness that this script exists, for whenever we need to upload [android versions to CIPD](https://chrome-infra-packages.appspot.com/p/flutter/android/sdk/all/mac-arm64/+/).

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-08 21:49:48 +00:00
Jason Simmons
64028157f8 Improve logging in the clang-tidy script (flutter/engine#44228)
* Add timestamps to process pool status logs
* Log the remaining job names when only a few jobs are pending

See https://github.com/flutter/flutter/issues/131689
2023-08-02 13:42:33 -07:00
Chris Yang
39fd1931c6 [iOS] Add darwin_extension_safe flag and use UIScene api when building for extensions (flutter/engine#43449)
iOS extensions forbids the usage of UIApplication.sharedApplication. This PR refactors the engine to use UISceneAPI when darwin_extension_safe flag is on. Using UISceneAPI can help avoid the usage of `UIApplication.sharedApplication` as much as possible.
This PR also added a new `_extension_safe` variant for the engine build so all the logic with the `darwin_extension_safe` flag is on can be tested separately.

This PR doesn't enable the engine to build for the extension even when darwin_extension_safe is true.

part of https://github.com/flutter/flutter/issues/124289

There are several issues related to UIApplication life cycle and I manually tested they still work with the scene API:

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-01 18:12:45 +00:00
David Worsham
716b6a2cd4 [fuchsia] Only use upstream vulkan headers (flutter/engine#44157)
Stop using the special fuchsia headers, as they are contributing to
undefined behavior when building with LTO.
They are also no longer needed. All relevant fuchsia extensions were
upstreamed some time ago.

In the process, engage in some cleanup which means the "vulkan_config"
is also no longer needed. Rely on GN "public_deps" to provide the vulkan
include paths to various source sets.

See b/291462180 for more details on why this fix was neccesary.
2023-08-01 13:17:14 +10:00
Jason Simmons
208c8eb4bf Set the required Android API level when Vulkan validation layers are automatically enabled for android_debug_unopt_arm64 builds (flutter/engine#44116)
The Vulkan validation layer headers will not build if the Android API level is 23 or lower.

Currently the engine buildroot's default Android API level is 23.  The API level must be overridden for any configuration where Vulkan validation is enabled.
2023-07-28 21:44:50 +00:00
Camille Simon
39cbbd22a3 [Android] Removes handling of Flutter splash screen (flutter/engine#44047)
Fixes https://github.com/flutter/flutter/issues/105173.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-07-28 18:08:35 +00:00
Matan Lurey
88cfeedf51 [Impeller] Set 'enable_vulkan_validation_layers' if --unopt and Vulkan is enabled. (flutter/engine#44055)
Context:

> @matanlurey:
> Would it make sense for `--unopt` to imply
`--enable-vulkan-validation-layers` if `--enable-vulkan` is set?
> The reason I ask is because it does seem to imply `glGetError` checks,
which (I could be wrong) is roughly similar?

> @chinmaygarde:
> Makes sense.

... so uh, here it is (let me know if we prefer anything different).
2023-07-27 22:48:22 -07:00
Jason Simmons
067f782825 Ignore the NOTICE.fuchsia file in the new license script (flutter/engine#44021)
See https://github.com/flutter/engine/pull/34038
2023-07-27 04:37:19 +00:00
Dan Field
c1314cc717 Embed a license readme in every zip archive (flutter/engine#43974)
fixes https://github.com/flutter/flutter/issues/130682

This patch makes all zip files created via the zip_bundle rule have an embedded LICENSE that points to a permalink to the LICENSE for that SDK commit hash. Previously we only did this for a few tools, but it was pointed out that some of the zip files we generate that are meant for consumption in the tool are otherwise missing a stand-alone license file (the tool downloads the full license file separately from the individual zips, as it would be costly to include it with each and every one).
2023-07-27 03:56:09 +00:00
Zachary Anderson
2fc2fa8503 Reset Dart VM optimization level to 2 (flutter/engine#43770)
Partial revert of https://github.com/flutter/engine/pull/43743

Setting the optimization level to `-Oz` reduced compressed binary size by 200KB, but regressed performance by 10-15% across the board (frame build time, gen_snapshot runtime, hot reload time, etc.)
2023-07-18 17:21:45 +00:00
Zachary Anderson
a48c39ab7e Add a GN flag to set the Dart VM's optimization level (flutter/engine#43743)
And set the level to `-Oz` for iOS and Android.
2023-07-17 18:57:08 -07:00
Jason Simmons
5c61353b89 Move Dart licenses into a separate golden file (flutter/engine#43289)
This will avoid conflicts between Dart rolls and rolls of other third
party components such as ANGLE.
2023-07-17 14:02:00 -07:00
Ian Hickson
93a21790b4 Make GOMA state automatic by default (flutter/engine#43584)
We used to default to force-enabled, which would fail on non-GOMA setups.
2023-07-13 06:34:51 +00:00
David Worsham
122b633929 [fuchsia] Remove FIDL dart references (flutter/engine#43550)
fidlgen_dart was still referenced in the build rules. It is being
removed from the fuchsia SDK, so remove it from the build rules here.
2023-07-12 02:48:12 +10:00
David Worsham
b400037017 [fuchsia] Fix tests; remove fuchsia dart SDK deps (flutter/engine#43461)
Dart is being removed from the Fuchsia SDK, so remove references to it
here.

Also remove references to workstation_eng and replace with terminal.
workstation_eng is no longer a thing.
2023-07-08 09:37:34 +10:00
Márk Tolmács
f41c1644d8 Enabling pre-push checks on Windows (flutter/engine#36123)
Re-submit the changes to enable windows pre-push checks.

This patch changes how `ci/bin/format.dart` generate diffs from `diff` and `patch` commands to `git diff` and `git apply` in order to have a common method for these operations on all platforms. Windows installations don't have diff and patch commands available by default and many implementations which provide such commands work differently than the UN*X tools. Git however works consistently across all platforms.

Additionally, this patch also changes the python executable in some of the pre-push components affected by this to `vpython3` to continue the effort started at flutter/flutter#108474 and I also removed the `--no-sound-null-safety` parameter in the ci/format.sh, ci/format.bat files

NOTE: Since the original patch caused some issues, I suggest that this should be tested more carefully before it is merged.

### Issues fixed by this PR
* flutter/flutter#108122
* flutter/flutter#107920
* flutter/flutter#86506
* flutter/flutter#106615

### [flutter/tests] repo impact
None.

writing and running engine tests.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-06-21 17:20:06 +00:00
Siva
2c57a3f9fa Fix analyzer warnings (prefer_final_in_for_each is now the default) (flutter/engine#42943)
The analyzer option `prefer_final_in_for_each` has been made the default
and this has triggered new warnings.
2023-06-16 17:33:59 -07:00
Jacob MacDonald
660bdd6b03 add dart_internal override where necessary (flutter/engine#42920)
A dependency to dart_internal was added in https://dart-review.googlesource.com/c/sdk/+/309460/6 and all transitive deps need to have overrides.
2023-06-16 17:20:18 +00:00
Harry Terkelsen
488833486c Build skia with expat (flutter/engine#42859)
Skia codecs depends on Skia's xml libraries which depend on expat, so we
must enable expat for non-wasm builds.

See https://github.com/flutter/engine/pull/42857 for an example of a
failing build on Skia.
2023-06-14 16:41:05 -07:00
Tamir Duberstein
0984c52a8f Remove dependency on memfs (flutter/engine#42773)
See individual commits.
2023-06-12 17:14:35 +00:00
gaaclarke
2097506136 [Impeller] Makes validation layers flag work for android (flutter/engine#42625)
This builds and links in the validation layers for android. They then
can be turned on or off with a manifest field.

fixes https://github.com/flutter/flutter/issues/123788
depends on https://github.com/flutter/buildroot/pull/741

## 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.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or Hixie said the PR is test-exempt. See [testing the engine]
for instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-06-09 10:22:21 -07:00
Mitchell Kember
b1fa42d81e [fuchsia] Bump the target API level to 12, and pass it to fidlc (flutter/engine#42667)
This makes the GN build pass the target Fuchsia API level to fidlc.
Currently it relies on the default of HEAD, meaning all FIDL changes are
immediately visible when the SDK rolls. This was never the intention:
flutter should be targeting a specific API level.

This unblocks https://fxrev.dev/864297 which makes the fidlc --available
flag required, and which uncovered this problem.

I also copied the changes to gen_response_file.py from
https://fxrev.dev/865020 to make it forward --available to fidlc.
2023-06-09 11:56:49 +10:00
Greg Spencer
a1b365111f Reland: "Adding app lifecycle notification for macOS and Linux, add hidden state." (#40542) (flutter/engine#42418)
## Description

This reverts commit 879917b to re-land #40542 to fix the lint warning which caused the original PR to be reverted (the lint warnings were turned on after the original was landed, which is why it wasn't caught earlier).
2023-05-30 20:45:46 +00:00
Zachary Anderson
879917b1e6 Revert "Adding app lifecycle notification for macOS and Linux, add hidden state." (flutter/engine#42384) 2023-05-28 00:02:58 -07:00
Greg Spencer
2af9be9d97 Adding app lifecycle notification for macOS and Linux, add hidden state. (flutter/engine#40542)
## Description

This adds app lifecycle notification for macOS and Linux, and adds a new `hidden` state to the `AppLifecycleState` enum.

To be functional, this needs a corresponding framework change: https://github.com/flutter/flutter/pull/123274

## Related Issues
 - https://github.com/flutter/flutter/issues/30735

## Tests
 - Added tests for state changes.
2023-05-26 23:24:33 +00:00
gaaclarke
d73aac2434 Started executing vulkan unit tests with validation on macos (flutter/engine#42337)
fixes https://github.com/flutter/flutter/issues/127634

This PR depends on a buildroot change at https://github.com/flutter/buildroot/pull/737

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-26 19:05:19 +00:00
gaaclarke
dc22f5f572 [Impeller] Turn on vulkan tests for mac CI. (flutter/engine#42225)
This uses swiftshader to run the tests on mac.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-24 23:25:06 +00:00
Alexander Aprelev
88faba02e2 Skip and ignore boringssl/src/rust when looking for the licenses. (flutter/engine#42210)
third_party/boringssl/src/rust/bssl-crypto/deny.toml coming in as part of https://dart-review.googlesource.com/c/sdk/+/304210 triggers 'potential license' license script error.

Rust sources of boringssl are not included into flutter, don't need to be scanned for licenses.
2023-05-22 19:53:54 +00:00
Casey Hillers
f0c9869019 Reland "Remove GN staging flag for save layer bounds" (flutter/engine#42029)
Reverts flutter/engine#42026

After investigating, this is a bug fix for the scubas.
2023-05-15 04:34:28 +00:00
Casey Hillers
e331048fc7 Revert "Remove GN staging flag for save layer bounds" (flutter/engine#42026)
Reverts flutter/engine#41940

See b/282115120

This caused a golden failure on Google Testing where a rectangular avatar became circular.
2023-05-14 17:01:17 +00:00
lauren n. liberda
998f826cb9 allow supplying custom gn args in gn wrapper (flutter/engine#41794)
allows to supply gn args that do not have their cli switches (yet), like this:
```sh
python3 ./tools/gn --gn-args 'use_default_linux_sysroot=false'
```

*List which issues are fixed by this PR. You must list at least one issue.*
https://github.com/flutter/flutter/issues/126197

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-11 20:13:50 +00:00
Michael Ludwig
c80779a479 Remove GN staging flag for save layer bounds (flutter/engine#41940)
See skbug.com/12083, skbug.com/12303.

SkCanvas::saveLayer() calls with an SkColorFilter that affects transparent black will now fill out to the bounds of the clip before the layer, which prevents leaking internal layer allocation decisions in the final rendering.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-11 19:51:48 +00:00
Michael Ludwig
3d9ad5fccb Remove staging flag (flutter/engine#41843)
Unit tests have been fixed by @flar, so the staging flag can be removed.

Unlocks progress on https://skbug.com/9283

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-09 19:32:10 +00:00
godofredoc
8cd97026b0 Allow default out_dir for fuchsia symbols upload. (flutter/engine#41776)
This also allows passing target files as relative to the src folder. This is required for migrating the fuchsia builds to engine_v2.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-05 17:36:20 +00:00
Michael Ludwig
4a82a1b867 Add temporary staging GN arg for Skia roll (flutter/engine#41743)
In order to enable the new behavior, dl_imagefilter_unittests need to be
updated to reflect new bounds mapping values. This requires an atomic PR
to disable the legacy arg and update after skia rolls.

Required to land https://skia-review.googlesource.com/c/skia/+/693058
and progress on https://skbug.com/9283

## 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.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or Hixie said the PR is test-exempt. See [testing the engine]
for instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [ ] 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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-05-04 13:38:01 -07:00
Jackson Gardner
5189eda98b Populate fallback fonts from CIPD in tests (flutter/engine#41656)
This fixes https://github.com/flutter/flutter/issues/85793

The script that generates the font fallback data also rolls a package to CIPD with these files and updates the DEPS to download those files from CIPD. This makes sure that these tests are hermetic.
2023-05-04 05:12:54 +00:00
Ian McKellar
cc02c8d27e [fuchsia] fix run_integration_test.sh (flutter/engine#41668)
This updates the `fx serve` check to reflect the current state of
Fuchsia's package serving.
2023-05-03 09:44:37 +10:00
Tim Maffett
bebb813709 Fixes font-subset to not drop GSUB/GPOS/GDEF tables for variable fonts where they are needed Fixes #125704 (flutter/engine#41592)
This PR fixes font-subset to check to see if a font is a variable font
with variable font axes before additionally dropping the GSUB/GPOS/GDEF
tables. These tables were being forced dropped in all cases (even though
harfbuzz had been modified to always keep them). I made the change only
drop the tables for variable fonts to preserve the previous behavior in
the most possible cases.

This PR fixes
[#125704](https://github.com/flutter/flutter/issues/125704).

To see the bug (or verify it is fixed) in the live web examples below
you must select the font variations Fill->1 and Weight->100.
(See issue [#125704](https://github.com/flutter/flutter/issues/125704)
for more details).

The issue [#125704](https://github.com/flutter/flutter/issues/125704)
includes examples of the font-subset being used (and breaking) the
variable fonts, as well as example of the `--no-tree-shake-icons` being
used where the fonts do not break.

Additionally, I have created an additional [live
example](https://timmaffett.github.io/material_symbols_icons_showing_tree_shake_fixed/)
where this PR has been applied to font-subset and icon tree shaking is
still taking place.

(Example w/ icon tree-shaking using the broken font-subset for icon tree
shaking is found
[here](https://timmaffett.github.io/material_symbols_icons_showing_tree_shake_bug/)
).

In the example build output below note that the non-variable fonts
"CupertinoIcons.ttf" and "MaterialIcons-Regular.otf" have the same size
savings as before the change, but the variable fonts
"MaterialSymbolsSharp[FILL,GRAD,opsz,wght].ttf",
"MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].ttf", and
"MaterialSymbolsRounded[FILL,GRAD,opsz,wght].ttf" now have a much more
reasonable saving of ~2% because every icon in the font is included in
the example. The previous extra ~30% savings was from having the GSUB
table removed. The 30% size savings for a tree-shaking for a case where
*every* icon is used in the example probably should have been suspect..
lol.

Output of build using fixed font-subset.exe [live fix
example](https://timmaffett.github.io/material_symbols_icons_showing_tree_shake_fixed/)
:
```console
flutter build web --release --web-renderer canvaskit --base-href "/material_symbols_icons_showing_tree_shake_fixed/"

Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1236 bytes (99.6% reduction). Tree-shaking can be disabled by providing the
--no-tree-shake-icons flag when building your app.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 10808 bytes (99.3% reduction). Tree-shaking can be disabled by providing the
--no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsSharp[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 5848492 to 5683212 bytes (2.8% reduction). Tree-shaking can be disabled by
providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 6944756 to 6779476 bytes (2.4% reduction). Tree-shaking can be disabled
by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsRounded[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 9361824 to 9196544 bytes (1.8% reduction). Tree-shaking can be disabled
by providing the --no-tree-shake-icons flag when building your app.
Compiling lib\main.dart for the Web...                             79.5s
```

BEFORE font-subset fix [live bug example
here](https://timmaffett.github.io/material_symbols_icons_showing_tree_shake_bug/):
```console
flutter build web --release --web-renderer canvaskit --base-href "/material_symbols_icons_showing_tree_shake_bug/"

Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 1236 bytes (99.6% reduction). Tree-shaking
can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsSharp[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 5848492 to 4079548 bytes
(30.2% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 6944756 to 4781576 bytes(31.1% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 10808 bytes (99.3% reduction).
Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialSymbolsRounded[FILL,GRAD,opsz,wght].ttf" was tree-shaken, reducing it from 9361824 to 6397020 bytes
(31.7% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Compiling lib\main.dart for the Web...                             63.8s
```
2023-05-01 13:49:41 -07:00
Jason Simmons
60f214c194 Exclude Skia's Vello directory from the license crawl (flutter/engine#41617) 2023-04-29 17:33:06 +00:00
Jason Simmons
4e818387cc Manual roll of Dart SDK from e8b86b073413 to 823a69e2a34d (flutter/engine#41614)
Requires a change to an analyzer script due to a deprecated API
2023-04-29 16:43:09 +00:00
M-A
1074fd7f89 fuchsia: do not read version_history.json (flutter/engine#41585)
Otherwise this causes GN to read JSON files that are irrelevant.

Co-authored-by: Marc-Antoine Ruel <maruel@google.com>
2023-04-28 09:54:28 -07:00
Zachary Anderson
c8c65d837a Download and use the goma client from cipd (flutter/engine#41488)
In https://github.com/flutter/flutter/issues/125361 we discovered that a
new version of clang can require updating goma in order for goma to work
properly. This PR adds a dependency on CIPD goma to the DEPS file so
that we can update it for use in local builds when needed. Since CI does
its own management of the goma client and the compiler proxy, and since
goma can only be used by Googlers, the DEPS file download is guarded
behind the `use_cipd_goma` gclient var. To use it one would update the
engine `.gclient` file to be something like:
```
~/flutter/engine/src $ cat ../.gclient
solutions = [
  {
    "managed": False,
    "name": "src/flutter",
    "url": "git@github.com:zanderso/engine.git",
    "custom_deps": {},
    "custom_vars": {
      "use_cipd_goma": True,
    },
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]
```

I'll update the wiki with these instructions after this PR lands.
2023-04-26 11:30:07 -07:00