-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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 [email protected] flutter/flutter@f77f824...684247a 2024-01-19 [email protected] Use Integer instead of int in map in flutter.groovy (flutter/flutter#141895) 2024-01-19 [email protected] Roll Flutter Engine from c953c83112ba to f2b441a26416 (4 revisions) (flutter/flutter#141894) 2024-01-19 [email protected] Native assets: package in framework on iOS and MacOS (flutter/flutter#140907) 2024-01-19 [email protected] 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 [email protected] Roll Flutter Engine from 538975f2511b to c953c83112ba (3 revisions) (flutter/flutter#141886) 2024-01-19 [email protected] Add `showDragHandle` to `showBottomSheet` (flutter/flutter#141754) 2024-01-19 [email protected] Roll Flutter Engine from 9a6c64de8a46 to 538975f2511b (8 revisions) (flutter/flutter#141881) 2024-01-19 [email protected] Make pumpWidget's arguments named (flutter/flutter#141728) 2024-01-19 [email protected] Tiny fix inaccurate documentations about bindings (flutter/flutter#140282) 2024-01-19 [email protected] Roll engine to 9a6c64de8a4694cef59a338cd33ac1a9e7d23d9d (flutter/flutter#141870) 2024-01-19 [email protected] Roll Packages from 83c2c4d to 129e08c (13 revisions) (flutter/flutter#141865) 2024-01-19 [email protected] Add mac_x64_ios configuration. (flutter/flutter#141828) 2024-01-19 [email protected] Roll Flutter Engine from 90be25d8aac3 to d1afda52d254 (1 revision) (flutter/flutter#141825) 2024-01-19 [email protected] Move the requestKeyboard up to the widgets layer (flutter/flutter#141655) 2024-01-19 [email protected] Roll Flutter Engine from dde3ebf6551a to 90be25d8aac3 (1 revision) (flutter/flutter#141817) 2024-01-18 [email protected] enable more tests in web mode (flutter/flutter#141791) 2024-01-18 [email protected] Roll Flutter Engine from 9dded186bcff to dde3ebf6551a (2 revisions) (flutter/flutter#141811) 2024-01-18 [email protected] Update margin between label and icon in Tab to better reflect Material specs (flutter/flutter#140698) 2024-01-18 [email protected] 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 [email protected] Run framework_tests_misc in arm64 and x64. (flutter/flutter#141797) 2024-01-18 [email protected] 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 [email protected] Update labeler.yml (flutter/flutter#141697) 2024-01-18 [email protected] Roll Flutter Engine from 75400c49fa0b to f4a4f046b173 (2 revisions) (flutter/flutter#141800) 2024-01-18 [email protected] Reland "Remove hack from PageView." (flutter/flutter#141533) 2024-01-18 [email protected] ScaleGestureRecognizer pointerCount=2 for trackpad gestures (flutter/flutter#140745) 2024-01-18 [email protected] Roll Flutter Engine from de68e7612948 to 75400c49fa0b (2 revisions) (flutter/flutter#141796) 2024-01-18 [email protected] Run `flutter_gallery_ios__start_up` test on Mac-14 in staging (flutter/flutter#141795) 2024-01-18 [email protected] Roll Flutter Engine from d80fe1cb5854 to de68e7612948 (1 revision) (flutter/flutter#141789) 2024-01-18 [email protected] Enable native compilation for windows-arm64 (flutter/flutter#137618) 2024-01-18 [email protected] [github actions] Fix token issue on actions/checkout package (flutter/flutter#141652) 2024-01-18 [email protected] Roll Flutter Engine from b75d6d80d813 to d80fe1cb5854 (2 revisions) (flutter/flutter#141785) 2024-01-18 [email protected] Revert "Native assets: roll deps" (flutter/flutter#141748) 2024-01-18 [email protected] Deprecate M2 curves (flutter/flutter#134417) 2024-01-18 [email protected] Fix: TextField can inherit `errorStyle` from `InputDecorationTheme`. (flutter/flutter#141227) 2024-01-18 [email protected] Add check for Bank of Brazil security module to Windows Flutter Doctor validators (flutter/flutter#141135) 2024-01-18 [email protected] Fix gradle lints No semantic change should be present. (flutter/flutter#141692) 2024-01-18 [email protected] 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 [email protected],[email protected],[email protected] 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.