Enable native compilation for windows-arm64 #137618
Enable native compilation for windows-arm64 #137618auto-submit[bot] merged 1 commit intoflutter:masterfrom p-b-o:windows_arm64
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.