-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Enable native compilation for windows-arm64 #137618
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@loic-sharma This is the first version of PR to support windows-arm64. There are probably some missing tests, and some style issues. If possible, I would appreciate if we could focus on current content, and fill testing and tweak style once we all agree on this. To complete PR description:
Yours and flutter team comments are welcome :) |
packages/flutter_tools/lib/src/build_system/targets/windows.dart
Outdated
Show resolved
Hide resolved
|
@pbo-linaro This looks good! My only concern so far is that only the "master" channel should allow targeting Windows Arm64. The "beta" and "stable" channels should...
Excellent work! :) |
Dart-sdk is only built for master channel, which is what prevents us from doing all this for beta and stable channels. |
I definitely would discourage checking the branch name in a powershell script. I think we would need to discuss this further, perhaps in a doc, before merging this change. |
I agree checking this in script is not a good way. I added a new section in windows-arm64 design document, "Enable windows-arm64 support for master branch only". After looking closely at this, I plan to not check current branch from powershell script, but simply fallback to windows-x64 engine if windows-arm64 one is not available. From there, we can check the channel in flutter code as normally expected. |
This sounds reasonable 👍 |
|
Thanks for the feedback @christopherfujino. |
|
Implemented described change (fallback on x64 engine when arm64 is not available) and implemented channel check for |
|
Updated comments and rebased. |
packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart
Outdated
Show resolved
Hide resolved
|
@pbo-linaro You'll also need to update the Devicelab tests to pass post-submit verification. I would run the Devicelab tests locally on your Windows Arm64 machine to verify this. Here are instructions on how to run Devicelab tests locally: https://github.com/flutter/flutter/blob/master/dev/devicelab/README.md#running-tests-locally You can find Devicelab tests using the You'll want to use the cd dev/devicelab
rm C:\Code\f\flutter\bin\cache\flutter_tools.snapshot # Forces Flutter tool rebuild
../../bin/cache/dart-sdk/bin/dart bin/test_runner.dart test -t run_debug_test_windowsIt looks like you'll need to update these files: flutter/dev/devicelab/lib/tasks/run_tests.dart Lines 180 to 182 in 45a4c7a
flutter/dev/devicelab/lib/tasks/perf_tests.dart Lines 956 to 964 in 45a4c7a
flutter/dev/devicelab/lib/tasks/perf_tests.dart Lines 1756 to 1763 in 45a4c7a
|
|
To be direct, I won't work/update any test as long as we don't 100% agree on content of PR. |
This reverts commit 5405592.
Reverts #137618 Initiated by: Jasguerrero This change reverts the following previous change: Original Description: It's now possible to natively compile a flutter app for windows-arm64. Cross-compilation is not yet implemented. Uses arm64 artifacts now available for Dart/Flutter. Platform detection is based on Abi class, provided by Dart. Depending if Dart is an arm64 or x64 binary, the Abi is set accordingly. Initial bootstrap of dart artifacts (update_dart_sdk.ps1) is checking PROCESSOR_ARCHITECTURE environment variable, which is the way to detect host architecture on Windows. This is available only for master channel (on other channels, it fallbacks to windows-x64). On windows-x64, it produces an x64 app. On windows-arm64, it produces an arm64 app.
|
@Jasguerrero Is that possible to get a public link or details on the failure? |
|
@pbo-linaro I'll try to handle this. I'll tag you on this thread if I need your help :) |
|
Thanks very much! |
Manual roll Flutter from f77f824 to 684247a (39 revisions) Manual roll requested by dit@google.com flutter/flutter@f77f824...684247a 2024-01-19 reidbaker@google.com Use Integer instead of int in map in flutter.groovy (flutter/flutter#141895) 2024-01-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from c953c83112ba to f2b441a26416 (4 revisions) (flutter/flutter#141894) 2024-01-19 dacoharkes@google.com Native assets: package in framework on iOS and MacOS (flutter/flutter#140907) 2024-01-19 ian@hixie.ch Revert "Make tests more resilient to Skia gold failures and refactor flutter_goldens for extensive technical debt removal (#140101)" (flutter/flutter#141814) 2024-01-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from 538975f2511b to c953c83112ba (3 revisions) (flutter/flutter#141886) 2024-01-19 36861262+QuncCccccc@users.noreply.github.com Add `showDragHandle` to `showBottomSheet` (flutter/flutter#141754) 2024-01-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9a6c64de8a46 to 538975f2511b (8 revisions) (flutter/flutter#141881) 2024-01-19 goderbauer@google.com Make pumpWidget's arguments named (flutter/flutter#141728) 2024-01-19 5236035+fzyzcjy@users.noreply.github.com Tiny fix inaccurate documentations about bindings (flutter/flutter#140282) 2024-01-19 zanderso@users.noreply.github.com Roll engine to 9a6c64de8a4694cef59a338cd33ac1a9e7d23d9d (flutter/flutter#141870) 2024-01-19 engine-flutter-autoroll@skia.org Roll Packages from 83c2c4d to 129e08c (13 revisions) (flutter/flutter#141865) 2024-01-19 godofredoc@google.com Add mac_x64_ios configuration. (flutter/flutter#141828) 2024-01-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from 90be25d8aac3 to d1afda52d254 (1 revision) (flutter/flutter#141825) 2024-01-19 ian@hixie.ch Move the requestKeyboard up to the widgets layer (flutter/flutter#141655) 2024-01-19 engine-flutter-autoroll@skia.org Roll Flutter Engine from dde3ebf6551a to 90be25d8aac3 (1 revision) (flutter/flutter#141817) 2024-01-18 yjbanov@google.com enable more tests in web mode (flutter/flutter#141791) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9dded186bcff to dde3ebf6551a (2 revisions) (flutter/flutter#141811) 2024-01-18 davidmartos96@gmail.com Update margin between label and icon in Tab to better reflect Material specs (flutter/flutter#140698) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from 3106e08e1219 to 9dded186bcff (2 revisions) (flutter/flutter#141807) 2024-01-18 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Enable native compilation for windows-arm64 " (flutter/flutter#141809) 2024-01-18 godofredoc@google.com Run framework_tests_misc in arm64 and x64. (flutter/flutter#141797) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from f4a4f046b173 to 3106e08e1219 (1 revision) (flutter/flutter#141802) 2024-01-18 49699333+dependabot[bot]@users.noreply.github.com Bump actions/upload-artifact from 4.1.0 to 4.2.0 (flutter/flutter#141803) 2024-01-18 goderbauer@google.com Update labeler.yml (flutter/flutter#141697) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from 75400c49fa0b to f4a4f046b173 (2 revisions) (flutter/flutter#141800) 2024-01-18 polinach@google.com Reland "Remove hack from PageView." (flutter/flutter#141533) 2024-01-18 smartercallum@gmail.com ScaleGestureRecognizer pointerCount=2 for trackpad gestures (flutter/flutter#140745) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from de68e7612948 to 75400c49fa0b (2 revisions) (flutter/flutter#141796) 2024-01-18 15619084+vashworth@users.noreply.github.com Run `flutter_gallery_ios__start_up` test on Mac-14 in staging (flutter/flutter#141795) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from d80fe1cb5854 to de68e7612948 (1 revision) (flutter/flutter#141789) 2024-01-18 101587250+pbo-linaro@users.noreply.github.com Enable native compilation for windows-arm64 (flutter/flutter#137618) 2024-01-18 xilaizhang@google.com [github actions] Fix token issue on actions/checkout package (flutter/flutter#141652) 2024-01-18 engine-flutter-autoroll@skia.org Roll Flutter Engine from b75d6d80d813 to d80fe1cb5854 (2 revisions) (flutter/flutter#141785) 2024-01-18 jesus_sguerrero@hotmail.com Revert "Native assets: roll deps" (flutter/flutter#141748) 2024-01-18 6655696+guidezpl@users.noreply.github.com Deprecate M2 curves (flutter/flutter#134417) 2024-01-18 rmolivares@renzo-olivares.dev Fix: TextField can inherit `errorStyle` from `InputDecorationTheme`. (flutter/flutter#141227) 2024-01-18 109111084+yaakovschectman@users.noreply.github.com Add check for Bank of Brazil security module to Windows Flutter Doctor validators (flutter/flutter#141135) 2024-01-18 reidbaker@google.com Fix gradle lints No semantic change should be present. (flutter/flutter#141692) 2024-01-18 engine-flutter-autoroll@skia.org Roll Packages from 1a2b780 to 83c2c4d (5 revisions) (flutter/flutter#141778) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC dit@google.com,rmistry@google.com,stuartmorgan@google.com on the revert to ensure that a human ...
|
@pbo-linaro Could you open a new pull request to re-land these changes? I have a fix pending on the Google side that I'll attach to this new pull request. That should allow us to reland your changes. |
|
New PR is available at #141930. |
It's now possible to natively compile a flutter app for
windows-arm64. Cross-compilation is not yet implemented.
Uses arm64 artifacts now available for Dart/Flutter.
Platform detection is based on Abi class, provided by Dart. Depending if
Dart is an arm64 or x64 binary, the Abi is set accordingly.
Initial bootstrap of dart artifacts (update_dart_sdk.ps1) is checking
PROCESSOR_ARCHITECTURE environment variable, which is the way to detect
host architecture on Windows.
This is available only for master channel (on other channels, it
fallbacks to windows-x64).
On windows-x64, it produces an x64 app. On windows-arm64, it produces an
arm64 app.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.