Commit Graph

400 Commits

Author SHA1 Message Date
Tess Strickland
840d7dd68a
Use --target-os for appropriate precompiled targets. (#127567)
This PR adds uses of the `--target-os` command line argument when
building kernel sources for precompiled applications for supported
target operating systems. The Dart CFE then:

* treats `Platform.operatingSystem` as if it were defined as the
constant string provided as an argument to the flag,
* treats `Platform.pathSeparator` as the appropriate separator for that
operating system,
* attempts to constant evaluate the initializer for any field annotated
with the `vm:platform-const` pragma, and
* attempts to constant evaluate all calls to a method annotated with the
`vm:platform-const` pragma.

The `vm:platform-const` pragma can appear in either library or user
code. If the attempt to constant evaluate the field initializer or
method call fails, then an error is thrown at kernel compilation time.

Addresses #14233.

The tests in
`packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart`
have been adjusted properly to account for the new passed command line
arguments.
2023-06-08 13:17:18 +02:00
Christopher Fujino
44e7206aa1
[flutter_tools] never tree shake 0x20 (space) font codepoints on web (#128302)
Always pass the space code point (`0x20`) to the font subsetter when targetting web because the web engine relies on that character to calculate a font's height.

Fixes #127270
2023-06-06 21:06:15 +00:00
Christopher Fujino
11cb29174f
[flutter_tools] delete entitlements files after copying to macos build dir (#127417)
Fixes https://github.com/flutter/flutter/issues/126705

Follow up fix after https://github.com/flutter/flutter/pull/126875 did NOT work.
2023-05-23 19:12:11 +00:00
Kevin Moore
529b919f09
tool-web-wasm: make wasm-opt an "option" instead of a "flag" (#126035)
Allows controlling a broader set of variables than just on/off.

Also make wasm-opt "full" the default
2023-05-04 22:07:12 +00:00
Kevin Moore
5816da8074
[tool] consistently use environment (not globals) in targets/web.dart (#125937)
Also update the order of args to commands so that testing has less repeated "stuff"
2023-05-04 00:47:06 +00:00
Kevin Moore
4bd9bcd7cb
tool: DRY up DepfileService (#125922) 2023-05-03 20:54:51 +00:00
Tae Hyung Kim
5c44b1df0f
Refactor "gen-l10n" command to use same code path when "l10n.yaml" is present or not present (#125429)
I think this is a long needed change to the `gen-l10n` command.
Essentially, the arguments to `flutter gen-l10n` can be provided by two
different methods: via command line arguments or via the `l10n.yaml`
file. The existence of a `l10n.yaml` file causes the latter approach to
take precedence.

However, currently, there's several differences in how the two
approaches are handled, and most of the default arguments are all over
the place, causing unexpected issues such as #120457 or #120023.

This PR refactors the command so that
* `LocalizationOptions` are more consistent with the actual argument
names/yaml options.
* All default values are determined in `LocalizationOptions`'s
constructor (or in `argParser.addOption(...)` in the case a boolean
value needs to be explicitly true).
* New `parseLocalizationsOptionsFromCommand` function to parse
arguments.
* Parse `LocalizationOptions` at the beginning of `runCommand()` and
pass it to `generateLocalizations`.

Fixes #120023.
2023-04-26 11:49:25 -07:00
Jackson Gardner
2269dc10b3
Add option to run wasm-opt on module output. (#124831)
This fixes https://github.com/flutter/flutter/issues/124159

Adds the command line argument `--wasm-opt` to optimize the web assembly output.
2023-04-14 17:19:21 +00:00
Jenn Magder
44fe615c5c
Remove Finder extended attributes in build target before code signing iOS frameworks (#123896)
Remove Finder extended attributes in build target before code signing iOS frameworks
2023-04-14 02:26:15 +00:00
Kevin Moore
76e587bf78
flutter-tool: enum cleanup (#124760)
flutter-tool: enum cleanup
2023-04-14 01:55:05 +00:00
Kevin Moore
895879c195
flutter_tools: Flutter Web CLI cleanup (#124564)
flutter_tools: Flutter Web CLI cleanup
2023-04-12 00:01:15 +00:00
Kevin Moore
ecf6a66387
Add omit-type-checks flag for wasm builds (#124341)
Add omit-type-checks flag for wasm builds
2023-04-11 00:38:35 +00:00
Jackson Gardner
07b89dada4
Add support to the flutter tool to compile against the skwasm renderer (#124296)
Add support to the flutter tool to compile against the skwasm renderer
2023-04-10 15:52:40 +00:00
Kevin Moore
1045c3d081
flutter_tool: add and use WebCompilerConfig (#124183)
flutter_tool: add and use WebCompilerConfig
2023-04-06 05:30:23 +00:00
Jackson Gardner
b57c59b4a7
Invalidate the WebStaticAssets target if the web sdk changes. (#123739)
Invalidate the `WebStaticAssets` target if the web sdk changes.
2023-03-30 02:20:19 +00:00
Jenn Magder
6e5a530737
Add flags to make App.framework work in app extension (#123618)
Add flags to make App.framework work in app extension
2023-03-28 23:10:06 +00:00
stuartmorgan
80cee59878
Don't rethrow Dart plugin registration exceptions (#122111)
Don't rethrow Dart plugin registration exceptions
2023-03-28 15:08:57 +00:00
Christopher Fujino
28d707693b
toolexit on malformed yaml (#123167)
[flutter_tools] toolexit on malformed yaml during gen-l10n
2023-03-22 02:05:24 +00:00
Michael Goderbauer
25e38a2a87
Bump lower Dart SDK constraints to 3.0 & add class modifiers (#122546)
Bump lower Dart SDK constraints to 3.0 & add class modifiers
2023-03-21 20:21:58 +00:00
Zachary Anderson
7e88acfb0e
[flutter_tool] Adds a flag to disable Impeller (#122960) 2023-03-20 22:23:23 -07:00
Jackson Gardner
be97d03a25
Use depfile with dart2wasm to determine when to rebuild. (#122817)
Use depfile with dart2wasm to determine when to rebuild.
2023-03-16 23:13:04 +00:00
sigmundch
aaa9cead70
[tool][web] Pass invoker flag to dart2js. (#122344)
[tool][web] Pass invoker flag to dart2js.
2023-03-11 03:24:34 +00:00
Mouad Debbar
a9700ffdd5
Revert "[web:tools] always use CanvasKit from the cache when building web apps (#93002)" (#117693)
Revert "[web:tools] always use CanvasKit from the cache when building web apps (#93002)"
2023-03-08 19:45:51 +00:00
Lioness100
26b6c1bedd
Fix typos (#121171)
* Fix typos

* lowercase animated & opacity

* Undo typo fix

---------

Co-authored-by: Michael Goderbauer <goderbauer@google.com>
2023-02-23 19:43:21 +00:00
David Iglesias
a463bb82c4
[tool][web] Makes flutter.js more G3 friendly. (#120504)
* Allow any JS file in flutter loader.

* Nag only if service worker API is completely unavailable.

* Add info about Secure Contexts if that may be the reason why serviceworker is not available.

* Update sanity test.

* If service worker settings are null, do not even check if the API is available.
2023-02-21 20:51:37 +00:00
Jackson Gardner
674254c036
Always use the testbed in web_test.dart so environment is populated. (#120984) 2023-02-17 10:19:09 -08:00
Jason Simmons
8d150833b0
Use the impellerc GLES output flag when compiling shaders for Android (#120647) 2023-02-15 19:01:00 +00:00
Mouad Debbar
d5dbcb7085
Revert "Revert "[web] Move JS content to its own .js files (#117691)" (#120275)" (#120363)
This reverts commit 0fb4406c30.
2023-02-10 21:24:08 +00:00
Kevin Chisholm
0fb4406c30
Revert "[web] Move JS content to its own .js files (#117691)" (#120275)
This reverts commit e03029ef6a.
2023-02-08 18:17:29 -06:00
Mouad Debbar
e03029ef6a
[web] Move JS content to its own .js files (#117691) 2023-02-07 10:51:52 -05:00
Mouad Debbar
d4b6898478
[web] Put all index.html operations in one place (#118188)
* [web] Put all index.html operations in one place

* review comments

* fix build

* change quotes

* fix test
2023-02-02 19:49:18 +00:00
Jonah Williams
4dbb573ff0
[flutter_tools] remove usage of remap samplers arg (#119346) 2023-01-27 18:49:49 +00:00
Michael Goderbauer
38630b6bd1
Remove unnecessary null checks in flutter_tool (#118857)
* dart fix --apply

* manual fixes

* fix after merge conflicts

* review
2023-01-23 21:43:08 +00:00
Mouad Debbar
3bf79607dd
[web] Fix paths fetched by flutter.js (#118684) 2023-01-23 15:02:58 +00:00
joshualitt
8f365a3bdc
[web] Update build to use generated JS runtime for Dart2Wasm. (#118359) 2023-01-12 13:46:39 -08:00
Jackson Gardner
9f2c5d8e21
Support flutter build web --wasm (#117075)
* Work in progress.

* Some fixes to the command line.

* Bootstrapping works.

* Change kickoff order to maximize concurrency.

* Fix analyzer errors and formatting issues.

* Fix doc comment.

* Added unit tests for some of the web targets.

* Format issue.

* Add an integration test that builds an app to wasm.

* Add a todo for depfiles.

* Formatting.

* Apparently the license header needs to say 2014.

* `file://` URIs confuse dart2wasm on Windows. Just use absolute paths.

* Update unit tests to match new path passing.

* Have a distinct build directory for wasm, and fixes for some upstream changes.
2022-12-19 20:09:02 +00:00
Christopher Fujino
1eaf5c0f08
[flutter_tools] tree shake icons from web builds (#115886)
* wip

* remove temp text file

* fix tests

* add test

* default to off

* restore gitignore

* update

* apply annotation to cupertino icons as well

* update reference to library in icon_tree_shaker.dart

* update tests

* fix tests

* remove hack to skip non-const check on web

* add hint about how much reduction and test
2022-12-15 22:13:17 +00:00
Jonah Williams
84ed058b42
[flutter_tools] Add remap sampler support (#116861) 2022-12-12 17:44:32 +00:00
Siva
7c8e171320
Manual Roll of Flutter Engine from 67254d6e4b03 to 8d83b98c55b3 (#116635)
* Roll Flutter Engine from 67254d6e4b03 to 8d83b98c55b3

* Roll Dart SDK from 35a9facce191 to e517487c5679 (Dart 3.0) (#38105)

* Bump SDK versions.

* Bump Dart SDK version constraints

* Update shrine package to 2.0.1 (null safe version)

* Fix more tests.

* Include patches from Jason for min android sdk version

* Fix analyzer warning
2022-12-08 18:03:51 -08:00
Jackson Gardner
db1c3e208d
Platform binaries reland (#115502)
You can now specify a --local-web-sdk flag to point to a wasm_release folder. This will make it so that only artifacts that pertain to the web sdk are overridden to point to the wasm_release folder. Other artifacts (such as impellerc) will pull from the cache, or from the --local-engine path if that is specified.

This also uses precompiled platform kernel files for both ddc and dart2js
2022-12-02 14:13:40 -08:00
Jonah Williams
f777c9f651
[flutter_tools] use absolute path for shader lib (#116123)
* [flutter_tools] use absolute path for shader lib

* update tests
2022-11-29 01:57:26 +00:00
Kevin Moore
259373d62b
[flutter_tools] Add --dump-info, --no-frequency-based-minification flags (#115862)
* [flutter_tools] Add --dump-info, --no-frequency-based-minification flags

Also some cleanup to named arguments to the buildWeb function

Fixes https://github.com/flutter/flutter/issues/115854

* fix tests
2022-11-22 23:57:25 +00:00
Brandon DeRosier
e9c6212da0
[Impeller] Add shader include with FlutterFragCoord for use by FragmentProgram (#114214) 2022-11-14 21:38:46 -08:00
Jonah Williams
8230ef5e85
Revert "[web] Add --local-web-sdk flag and use precompiled platform kernels for dart2js and ddc (#114639)" (#115242)
This reverts commit 0e9ee3679c.
2022-11-13 20:23:26 +00:00
Jackson Gardner
0e9ee3679c
[web] Add --local-web-sdk flag and use precompiled platform kernels for dart2js and ddc (#114639)
* Dart2JS build step looks for compiled platform binaries.

* Use new locations of platform binaries.

* Added --local-web-sdk command line flag.

* Need to use the matching frontend server when doing ddc stuff.

* Update packages/flutter_tools/lib/src/test/web_test_compiler.dart

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>

* Update packages/flutter_tools/lib/src/runner/flutter_command_runner.dart

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>

* Formatting issues.

* Need to use URI format for platform dill.

* Fix resident runner tests.

* Fix analysis issue.

* Fix and add unit tests.

* Add some useful comments.

* Refine doc comments for flags.

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>
2022-11-12 01:31:10 +00:00
Jenn Magder
c1ceda41ef
Include stdout in codesign failure output (#115115) 2022-11-10 14:09:20 -08:00
Jonah Williams
1cfdac4b23
Always invoke impeller ios shader target (#114451) 2022-11-02 16:43:07 +00:00
Jonah Williams
4f19a9fa46
[flutter_tools] Add support for compiling shaders to JSON bundle for web (#114295) 2022-10-31 16:52:09 +00:00
Brandon DeRosier
637e5bce66
[Impeller] Build Impeller iOS runtime stage shaders when Impeller is enabled (#113689) 2022-10-20 02:14:43 -07:00
Jenn Magder
35afe1bdac
Stop embedding bitcode for iOS in tool (#112831) 2022-10-04 01:41:23 +00:00