diff --git a/bin/internal/update_dart_sdk.ps1 b/bin/internal/update_dart_sdk.ps1 index cb95257d92..9dbef7cf5c 100644 --- a/bin/internal/update_dart_sdk.ps1 +++ b/bin/internal/update_dart_sdk.ps1 @@ -47,22 +47,7 @@ if (-not $dartSdkBaseUrl) { if ($engineRealm) { $dartSdkBaseUrl = "$dartSdkBaseUrl/$engineRealm" } - -# It's important to use the native Dart SDK as the default target architecture -# for Flutter Windows builds depend on the Dart executable's architecture. -$dartZipNameX64 = "dart-sdk-windows-x64.zip" -$dartZipNameArm64 = "dart-sdk-windows-arm64.zip" -$dartZipName = $dartZipNameX64 -if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { - $dartSdkArm64Url = "$dartSdkBaseUrl/flutter_infra_release/flutter/$engineVersion/$dartZipNameArm64" - Try { - Invoke-WebRequest -Uri $dartSdkArm64Url -UseBasicParsing -Method Head | Out-Null - $dartZipName = $dartZipNameArm64 - } - Catch { - Write-Host "The current channel's Dart SDK does not support Windows Arm64, falling back to Windows x64..." - } -} +$dartZipName = "dart-sdk-windows-x64.zip" $dartSdkUrl = "$dartSdkBaseUrl/flutter_infra_release/flutter/$engineVersion/$dartZipName" if ((Test-Path $dartSdkPath) -or (Test-Path $dartSdkLicense)) { diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index 71462ce5e8..85078dd97e 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart @@ -4,7 +4,6 @@ import 'dart:async'; import 'dart:convert' show LineSplitter, json, utf8; -import 'dart:ffi' show Abi; import 'dart:io'; import 'dart:math' as math; @@ -954,12 +953,11 @@ class StartupTest { '--target=$target', ]); final String basename = path.basename(testDirectory); - final String arch = Abi.current() == Abi.windowsX64 ? 'x64': 'arm64'; applicationBinaryPath = path.join( testDirectory, 'build', 'windows', - arch, + 'x64', 'runner', 'Profile', '$basename.exe' @@ -1765,12 +1763,11 @@ class CompileTest { await flutter('build', options: options); watch.stop(); final String basename = path.basename(cwd); - final String arch = Abi.current() == Abi.windowsX64 ? 'x64': 'arm64'; final String exePath = path.join( cwd, 'build', 'windows', - arch, + 'x64', 'runner', 'release', '$basename.exe'); diff --git a/dev/devicelab/lib/tasks/plugin_tests.dart b/dev/devicelab/lib/tasks/plugin_tests.dart index 7179ecd8b5..2f9943c57e 100644 --- a/dev/devicelab/lib/tasks/plugin_tests.dart +++ b/dev/devicelab/lib/tasks/plugin_tests.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:ffi'; import 'dart:io'; import 'package:path/path.dart' as path; @@ -329,9 +328,8 @@ public class $pluginClass: NSObject, FlutterPlugin { throw TaskResult.failure('Platform unit tests failed'); } case 'windows': - final String arch = Abi.current() == Abi.windowsX64 ? 'x64': 'arm64'; if (await exec( - path.join(rootPath, 'build', 'windows', arch, 'plugins', 'plugintest', 'Release', 'plugintest_test.exe'), + path.join(rootPath, 'build', 'windows', 'x64', 'plugins', 'plugintest', 'Release', 'plugintest_test.exe'), [], canFail: true, ) != 0) { diff --git a/dev/devicelab/lib/tasks/run_tests.dart b/dev/devicelab/lib/tasks/run_tests.dart index 1b1850a9f4..a5c6f8c754 100644 --- a/dev/devicelab/lib/tasks/run_tests.dart +++ b/dev/devicelab/lib/tasks/run_tests.dart @@ -4,7 +4,6 @@ import 'dart:async'; import 'dart:convert'; -import 'dart:ffi'; import 'dart:io'; import '../framework/devices.dart'; @@ -174,14 +173,12 @@ class WindowsRunOutputTest extends DesktopRunOutputTest { } ); - final String arch = Abi.current() == Abi.windowsX64 ? 'x64': 'arm64'; - static final RegExp _buildOutput = RegExp( r'Building Windows application\.\.\.\s*\d+(\.\d+)?(ms|s)', multiLine: true, ); static final RegExp _builtOutput = RegExp( - r'Built build\\windows\\(x64|arm64)\\runner\\(Debug|Release)\\\w+\.exe( \(\d+(\.\d+)?MB\))?\.', + r'Built build\\windows\\x64\\runner\\(Debug|Release)\\\w+\.exe( \(\d+(\.\d+)?MB\))?\.', ); @override @@ -208,7 +205,7 @@ class WindowsRunOutputTest extends DesktopRunOutputTest { return true; }, - 'Built build\\windows\\$arch\\runner\\$buildMode\\app.exe', + 'Built build\\windows\\x64\\runner\\$buildMode\\app.exe', ); } } diff --git a/packages/flutter_tools/bin/tool_backend.dart b/packages/flutter_tools/bin/tool_backend.dart index 8122864dcf..d98c705547 100644 --- a/packages/flutter_tools/bin/tool_backend.dart +++ b/packages/flutter_tools/bin/tool_backend.dart @@ -76,7 +76,7 @@ or else 'flutter', ]); - final String bundlePlatform = targetPlatform; + final String bundlePlatform = targetPlatform.startsWith('windows') ? 'windows' : targetPlatform; final String target = '${buildMode}_bundle_${bundlePlatform}_assets'; final Process assembleProcess = await Process.start( flutterExecutable, diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index e583ce397f..fe05a59cb1 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -234,7 +234,6 @@ class AndroidDevice extends Device { case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: throw UnsupportedError('Invalid target platform for Android'); } } @@ -571,7 +570,6 @@ class AndroidDevice extends Device { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_arm64: case TargetPlatform.windows_x64: _logger.printError('Android platforms are only supported.'); return LaunchResult.failed(); diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index a5d0022bc9..386741a0e4 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -144,7 +144,6 @@ TargetPlatform? _mapTargetPlatform(TargetPlatform? targetPlatform) { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: @@ -527,7 +526,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: return _getDesktopArtifactPath(artifact, platform, mode); case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: @@ -745,9 +743,8 @@ class CachedArtifacts implements Artifacts { final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, _platform, mode)); case Artifact.windowsCppClientWrapper: - final String platformDirName = _enginePlatformDirectoryName(platform); final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; - return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, _platform, mode)); + return _fileSystem.path.join(engineArtifactsPath, 'windows-x64', _artifactToFileName(artifact, _platform, mode)); case Artifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); return _fileSystem.path.join(dartPackageDirectory.path, _artifactToFileName(artifact, _platform)); @@ -778,7 +775,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.linux_arm64: case TargetPlatform.darwin: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: // TODO(zanderso): remove once debug desktop artifacts are uploaded // under a separate directory from the host artifacts. // https://github.com/flutter/flutter/issues/38935 @@ -817,11 +813,10 @@ TargetPlatform _currentHostPlatform(Platform platform, OperatingSystemUtils oper } if (platform.isLinux) { return operatingSystemUtils.hostPlatform == HostPlatform.linux_x64 ? - TargetPlatform.linux_x64 : TargetPlatform.linux_arm64; + TargetPlatform.linux_x64 : TargetPlatform.linux_arm64; } if (platform.isWindows) { - return operatingSystemUtils.hostPlatform == HostPlatform.windows_arm64 ? - TargetPlatform.windows_arm64 : TargetPlatform.windows_x64; + return TargetPlatform.windows_x64; } throw UnimplementedError('Host OS not supported.'); } @@ -1094,8 +1089,6 @@ class CachedLocalEngineArtifacts implements Artifacts { return 'linux-x64'; case TargetPlatform.windows_x64: return 'windows-x64'; - case TargetPlatform.windows_arm64: - return 'windows-arm64'; case TargetPlatform.ios: case TargetPlatform.android: case TargetPlatform.android_arm: @@ -1297,8 +1290,6 @@ class CachedLocalWebSdkArtifacts implements Artifacts { return 'linux-x64'; case TargetPlatform.windows_x64: return 'windows-x64'; - case TargetPlatform.windows_arm64: - return 'windows-arm64'; case TargetPlatform.ios: case TargetPlatform.android: case TargetPlatform.android_arm: diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 60be3c0e1d..a5fa9b6cbe 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -347,7 +347,6 @@ class AOTSnapshotter { TargetPlatform.linux_x64, TargetPlatform.linux_arm64, TargetPlatform.windows_x64, - TargetPlatform.windows_arm64, ].contains(platform); } } diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart index eb9847cf13..1ce1951cef 100644 --- a/packages/flutter_tools/lib/src/base/os.dart +++ b/packages/flutter_tools/lib/src/base/os.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:ffi' show Abi; - import 'package:archive/archive.dart'; import 'package:file/file.dart'; import 'package:meta/meta.dart'; @@ -474,17 +472,8 @@ class _WindowsUtils extends OperatingSystemUtils { required super.processManager, }) : super._private(); - HostPlatform? _hostPlatform; - @override - HostPlatform get hostPlatform { - if (_hostPlatform == null) { - final Abi abi = Abi.current(); - _hostPlatform = (abi == Abi.windowsArm64) ? HostPlatform.windows_arm64 : - HostPlatform.windows_x64; - } - return _hostPlatform!; - } + HostPlatform hostPlatform = HostPlatform.windows_x64; @override void makeExecutable(File file) {} @@ -618,8 +607,7 @@ enum HostPlatform { darwin_arm64, linux_x64, linux_arm64, - windows_x64, - windows_arm64; + windows_x64; String get platformName { return switch (this) { @@ -627,8 +615,7 @@ enum HostPlatform { HostPlatform.darwin_arm64 => 'arm64', HostPlatform.linux_x64 => 'x64', HostPlatform.linux_arm64 => 'arm64', - HostPlatform.windows_x64 => 'x64', - HostPlatform.windows_arm64 => 'arm64', + HostPlatform.windows_x64 => 'x64' }; } } @@ -639,7 +626,6 @@ String getNameForHostPlatform(HostPlatform platform) { HostPlatform.darwin_arm64 => 'darwin-arm64', HostPlatform.linux_x64 => 'linux-x64', HostPlatform.linux_arm64 => 'linux-arm64', - HostPlatform.windows_x64 => 'windows-x64', - HostPlatform.windows_arm64 => 'windows-arm64', + HostPlatform.windows_x64 => 'windows-x64' }; } diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart index f50019b9a9..07a6047569 100644 --- a/packages/flutter_tools/lib/src/build_info.dart +++ b/packages/flutter_tools/lib/src/build_info.dart @@ -513,7 +513,6 @@ enum TargetPlatform { linux_x64, linux_arm64, windows_x64, - windows_arm64, fuchsia_arm64, fuchsia_x64, tester, @@ -545,7 +544,6 @@ enum TargetPlatform { case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: throw UnsupportedError('Unexpected Fuchsia platform $this'); } } @@ -557,7 +555,6 @@ enum TargetPlatform { case TargetPlatform.windows_x64: return 'x64'; case TargetPlatform.linux_arm64: - case TargetPlatform.windows_arm64: return 'arm64'; case TargetPlatform.android: case TargetPlatform.android_arm: @@ -716,8 +713,6 @@ String getNameForTargetPlatform(TargetPlatform platform, {DarwinArch? darwinArch return 'linux-arm64'; case TargetPlatform.windows_x64: return 'windows-x64'; - case TargetPlatform.windows_arm64: - return 'windows-arm64'; case TargetPlatform.fuchsia_arm64: return 'fuchsia-arm64'; case TargetPlatform.fuchsia_x64: @@ -761,8 +756,6 @@ TargetPlatform getTargetPlatformForName(String platform) { return TargetPlatform.linux_arm64; case 'windows-x64': return TargetPlatform.windows_x64; - case 'windows-arm64': - return TargetPlatform.windows_arm64; case 'web-javascript': return TargetPlatform.web_javascript; case 'flutter-tester': diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index fda26a4758..461638298b 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -206,7 +206,6 @@ class KernelSnapshot extends Target { switch (targetPlatform) { case TargetPlatform.darwin: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: case TargetPlatform.linux_x64: forceLinkPlatform = true; case TargetPlatform.android: @@ -234,7 +233,7 @@ class KernelSnapshot extends Target { TargetPlatform.darwin => 'macos', TargetPlatform.ios => 'ios', TargetPlatform.linux_arm64 || TargetPlatform.linux_x64 => 'linux', - TargetPlatform.windows_arm64 || TargetPlatform.windows_x64 => 'windows', + TargetPlatform.windows_x64 => 'windows', TargetPlatform.tester || TargetPlatform.web_javascript => null, }; diff --git a/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart b/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart index b6f5f12cbd..8757e72123 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart @@ -104,7 +104,6 @@ class NativeAssets extends Target { fileSystem, buildRunner, ); - case TargetPlatform.windows_arm64: case TargetPlatform.windows_x64: dependencies = await _buildWindows( environment, @@ -355,7 +354,6 @@ class NativeAssets extends Target { case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: throwToolExit('Unsupported Android target platform: $targetPlatform.'); } } diff --git a/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart b/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart index c03ef892e7..07e4a85f37 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart @@ -69,7 +69,6 @@ class DevelopmentShaderCompiler { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: diff --git a/packages/flutter_tools/lib/src/build_system/targets/windows.dart b/packages/flutter_tools/lib/src/build_system/targets/windows.dart index 983eb5cee8..de2591198f 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/windows.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/windows.dart @@ -31,9 +31,7 @@ const String _kWindowsDepfile = 'windows_engine_sources.d'; /// Copies the Windows desktop embedding files to the copy directory. class UnpackWindows extends Target { - const UnpackWindows(this.targetPlatform); - - final TargetPlatform targetPlatform; + const UnpackWindows(); @override String get name => 'unpack_windows'; @@ -62,13 +60,13 @@ class UnpackWindows extends Target { final String engineSourcePath = environment.artifacts .getArtifactPath( Artifact.windowsDesktopPath, - platform: targetPlatform, + platform: TargetPlatform.windows_x64, mode: buildMode, ); final String clientSourcePath = environment.artifacts .getArtifactPath( Artifact.windowsCppClientWrapper, - platform: targetPlatform, + platform: TargetPlatform.windows_x64, mode: buildMode, ); final Directory outputDirectory = environment.fileSystem.directory( @@ -87,7 +85,7 @@ class UnpackWindows extends Target { clientSourcePaths: [clientSourcePath], icuDataPath: environment.artifacts.getArtifactPath( Artifact.icuData, - platform: targetPlatform, + platform: TargetPlatform.windows_x64 ) ); environment.depFileService.writeToFile( @@ -99,14 +97,12 @@ class UnpackWindows extends Target { /// Creates a bundle for the Windows desktop target. abstract class BundleWindowsAssets extends Target { - const BundleWindowsAssets(this.targetPlatform); - - final TargetPlatform targetPlatform; + const BundleWindowsAssets(); @override - List get dependencies => [ - const KernelSnapshot(), - UnpackWindows(targetPlatform), + List get dependencies => const [ + KernelSnapshot(), + UnpackWindows(), ]; @override @@ -142,7 +138,7 @@ abstract class BundleWindowsAssets extends Target { final Depfile depfile = await copyAssets( environment, outputDirectory, - targetPlatform: targetPlatform, + targetPlatform: TargetPlatform.windows_x64, shaderTarget: ShaderTarget.sksl, ); environment.depFileService.writeToFile( @@ -191,10 +187,10 @@ class WindowsAotBundle extends Target { } class ReleaseBundleWindowsAssets extends BundleWindowsAssets { - const ReleaseBundleWindowsAssets(super.targetPlatform); + const ReleaseBundleWindowsAssets(); @override - String get name => 'release_bundle_${getNameForTargetPlatform(targetPlatform)}_assets'; + String get name => 'release_bundle_windows_assets'; @override List get outputs => const []; @@ -202,15 +198,15 @@ class ReleaseBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - WindowsAotBundle(AotElfRelease(targetPlatform)), + const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)), ]; } class ProfileBundleWindowsAssets extends BundleWindowsAssets { - const ProfileBundleWindowsAssets(super.targetPlatform); + const ProfileBundleWindowsAssets(); @override - String get name => 'profile_bundle_${getNameForTargetPlatform(targetPlatform)}_assets'; + String get name => 'profile_bundle_windows_assets'; @override List get outputs => const []; @@ -218,15 +214,15 @@ class ProfileBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - WindowsAotBundle(AotElfProfile(targetPlatform)), + const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)), ]; } class DebugBundleWindowsAssets extends BundleWindowsAssets { - const DebugBundleWindowsAssets(super.targetPlatform); + const DebugBundleWindowsAssets(); @override - String get name => 'debug_bundle_${getNameForTargetPlatform(targetPlatform)}_assets'; + String get name => 'debug_bundle_windows_assets'; @override List get inputs => [ diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 5ac969e9d8..974a768cb4 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -73,14 +73,10 @@ List _kDefaultTargets = [ const ProfileIosApplicationBundle(), const ReleaseIosApplicationBundle(), // Windows targets - const UnpackWindows(TargetPlatform.windows_x64), - const UnpackWindows(TargetPlatform.windows_arm64), - const DebugBundleWindowsAssets(TargetPlatform.windows_x64), - const DebugBundleWindowsAssets(TargetPlatform.windows_arm64), - const ProfileBundleWindowsAssets(TargetPlatform.windows_x64), - const ProfileBundleWindowsAssets(TargetPlatform.windows_arm64), - const ReleaseBundleWindowsAssets(TargetPlatform.windows_x64), - const ReleaseBundleWindowsAssets(TargetPlatform.windows_arm64), + const UnpackWindows(), + const DebugBundleWindowsAssets(), + const ProfileBundleWindowsAssets(), + const ReleaseBundleWindowsAssets(), ]; /// Assemble provides a low level API to interact with the flutter tool build diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart index 8ae6ec3baf..5bca720f71 100644 --- a/packages/flutter_tools/lib/src/commands/build.dart +++ b/packages/flutter_tools/lib/src/commands/build.dart @@ -72,11 +72,7 @@ class BuildCommand extends FlutterCommand { operatingSystemUtils: osUtils, verboseHelp: verboseHelp )); - _addSubcommand(BuildWindowsCommand( - logger: logger, - operatingSystemUtils: osUtils, - verboseHelp: verboseHelp, - )); + _addSubcommand(BuildWindowsCommand(logger: logger, verboseHelp: verboseHelp)); _addSubcommand(BuildPreviewCommand( artifacts: artifacts, flutterRoot: Cache.flutterRoot!, diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index 82470cf607..21291093d6 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -45,7 +45,6 @@ class BuildBundleCommand extends BuildSubCommand { 'linux-x64', 'linux-arm64', 'windows-x64', - 'windows-arm64', ], help: 'The architecture for which to build the application.', ) @@ -117,7 +116,6 @@ class BuildBundleCommand extends BuildSubCommand { throwToolExit('macOS is not a supported target platform.'); } case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: if (!featureFlags.isWindowsEnabled) { throwToolExit('Windows is not a supported target platform.'); } diff --git a/packages/flutter_tools/lib/src/commands/build_preview.dart b/packages/flutter_tools/lib/src/commands/build_preview.dart index ec20f0cc23..cd3a7eef9e 100644 --- a/packages/flutter_tools/lib/src/commands/build_preview.dart +++ b/packages/flutter_tools/lib/src/commands/build_preview.dart @@ -65,11 +65,9 @@ class BuildPreviewCommand extends BuildSubCommand { final Directory targetDir = fs.systemTempDirectory.createTempSync('flutter-build-preview'); try { final FlutterProject flutterProject = await _createProject(targetDir); - // TODO(loic-sharma): Support windows-arm64 preview device, https://github.com/flutter/flutter/issues/139949. await buildWindows( flutterProject.windows, buildInfo, - TargetPlatform.windows_x64, ); final File previewDevice = targetDir diff --git a/packages/flutter_tools/lib/src/commands/build_windows.dart b/packages/flutter_tools/lib/src/commands/build_windows.dart index 3267782fd6..830d604480 100644 --- a/packages/flutter_tools/lib/src/commands/build_windows.dart +++ b/packages/flutter_tools/lib/src/commands/build_windows.dart @@ -6,7 +6,6 @@ import 'package:meta/meta.dart'; import '../base/analyze_size.dart'; import '../base/common.dart'; -import '../base/os.dart'; import '../build_info.dart'; import '../cache.dart'; import '../features.dart'; @@ -21,15 +20,11 @@ import 'build.dart'; class BuildWindowsCommand extends BuildSubCommand { BuildWindowsCommand({ required super.logger, - required OperatingSystemUtils operatingSystemUtils, bool verboseHelp = false, - }) : _operatingSystemUtils = operatingSystemUtils, - super(verboseHelp: verboseHelp) { + }) : super(verboseHelp: verboseHelp) { addCommonDesktopBuildOptions(verboseHelp: verboseHelp); } - final OperatingSystemUtils _operatingSystemUtils; - @override final String name = 'windows'; @@ -57,16 +52,10 @@ class BuildWindowsCommand extends BuildSubCommand { if (!globals.platform.isWindows) { throwToolExit('"build windows" only supported on Windows hosts.'); } - - final String defaultTargetPlatform = (_operatingSystemUtils.hostPlatform == HostPlatform.windows_arm64) ? - 'windows-arm64' : 'windows-x64'; - final TargetPlatform targetPlatform = getTargetPlatformForName(defaultTargetPlatform); - displayNullSafetyMode(buildInfo); await buildWindows( flutterProject.windows, buildInfo, - targetPlatform, target: targetFile, visualStudioOverride: visualStudioOverride, sizeAnalyzer: SizeAnalyzer( diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index c4cebb385a..35ec962741 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -351,7 +351,6 @@ Future runInContext( platform: globals.platform, logger: globals.logger, processManager: globals.processManager, - osUtils: globals.os, ) ), WebWorkflow: () => WebWorkflow( diff --git a/packages/flutter_tools/lib/src/flutter_application_package.dart b/packages/flutter_tools/lib/src/flutter_application_package.dart index f605c19575..103f21c043 100644 --- a/packages/flutter_tools/lib/src/flutter_application_package.dart +++ b/packages/flutter_tools/lib/src/flutter_application_package.dart @@ -98,7 +98,6 @@ class FlutterApplicationPackageFactory extends ApplicationPackageFactory { ? LinuxApp.fromLinuxProject(FlutterProject.current().linux) : LinuxApp.fromPrebuiltApp(applicationBinary); case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: return applicationBinary == null ? WindowsApp.fromWindowsProject(FlutterProject.current().windows) : WindowsApp.fromPrebuiltApp(applicationBinary); diff --git a/packages/flutter_tools/lib/src/flutter_cache.dart b/packages/flutter_tools/lib/src/flutter_cache.dart index d19e7f9841..dcba2c6da5 100644 --- a/packages/flutter_tools/lib/src/flutter_cache.dart +++ b/packages/flutter_tools/lib/src/flutter_cache.dart @@ -235,18 +235,18 @@ class FlutterSdk extends EngineCachedArtifact { @override List> getBinaryDirs() { - // Linux and Windows both support arm64 and x64. + // Currently only Linux supports both arm64 and x64. final String arch = cache.getHostPlatformArchName(); return >[ ['common', 'flutter_patched_sdk.zip'], ['common', 'flutter_patched_sdk_product.zip'], if (cache.includeAllPlatforms) ...>[ - ['windows-$arch', 'windows-$arch/artifacts.zip'], + ['windows-x64', 'windows-x64/artifacts.zip'], ['linux-$arch', 'linux-$arch/artifacts.zip'], ['darwin-x64', 'darwin-$arch/artifacts.zip'], ] else if (_platform.isWindows) - ['windows-$arch', 'windows-$arch/artifacts.zip'] + ['windows-x64', 'windows-x64/artifacts.zip'] else if (_platform.isMacOS) ['darwin-x64', 'darwin-$arch/artifacts.zip'] else if (_platform.isLinux) @@ -304,8 +304,7 @@ class WindowsEngineArtifacts extends EngineCachedArtifact { @override List> getBinaryDirs() { if (_platform.isWindows || ignorePlatformFiltering) { - final String arch = cache.getHostPlatformArchName(); - return _getWindowsDesktopBinaryDirs(arch); + return _windowsDesktopBinaryDirs; } return const >[]; } @@ -740,12 +739,12 @@ class FontSubsetArtifacts extends EngineCachedArtifact { @override List> getBinaryDirs() { - // Linux and Windows both support arm64 and x64. + // Currently only Linux supports both arm64 and x64. final String arch = cache.getHostPlatformArchName(); final Map> artifacts = > { 'macos': ['darwin-x64', 'darwin-$arch/$artifactName.zip'], 'linux': ['linux-$arch', 'linux-$arch/$artifactName.zip'], - 'windows': ['windows-$arch', 'windows-$arch/$artifactName.zip'], + 'windows': ['windows-x64', 'windows-x64/$artifactName.zip'], }; if (cache.includeAllPlatforms) { return artifacts.values.toList(); @@ -847,15 +846,12 @@ class IosUsbArtifacts extends CachedArtifact { // TODO(zanderso): upload debug desktop artifacts to host-debug and // remove from existing host folder. // https://github.com/flutter/flutter/issues/38935 - -List> _getWindowsDesktopBinaryDirs(String arch) { - return >[ - ['windows-$arch', 'windows-$arch-debug/windows-$arch-flutter.zip'], - ['windows-$arch', 'windows-$arch/flutter-cpp-client-wrapper.zip'], - ['windows-$arch-profile', 'windows-$arch-profile/windows-$arch-flutter.zip'], - ['windows-$arch-release', 'windows-$arch-release/windows-$arch-flutter.zip'], - ]; -} +const List> _windowsDesktopBinaryDirs = >[ + ['windows-x64', 'windows-x64-debug/windows-x64-flutter.zip'], + ['windows-x64', 'windows-x64/flutter-cpp-client-wrapper.zip'], + ['windows-x64-profile', 'windows-x64-profile/windows-x64-flutter.zip'], + ['windows-x64-release', 'windows-x64-release/windows-x64-flutter.zip'], +]; const List> _macOSDesktopBinaryDirs = >[ ['darwin-x64', 'darwin-x64/FlutterMacOS.framework.zip'], diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart index a2f0decf7f..7034b46e51 100644 --- a/packages/flutter_tools/lib/src/mdns_discovery.dart +++ b/packages/flutter_tools/lib/src/mdns_discovery.dart @@ -529,7 +529,6 @@ class MDnsVmServiceDiscovery { case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: _logger.printTrace('No interface with an ipv4 link local address was found.'); } } diff --git a/packages/flutter_tools/lib/src/native_assets.dart b/packages/flutter_tools/lib/src/native_assets.dart index a92ffcc167..97ad5415b1 100644 --- a/packages/flutter_tools/lib/src/native_assets.dart +++ b/packages/flutter_tools/lib/src/native_assets.dart @@ -379,7 +379,6 @@ Future dryRunNativeAssets({ fileSystem: fileSystem, buildRunner: buildRunner, ); - case build_info.TargetPlatform.windows_arm64: case build_info.TargetPlatform.windows_x64: nativeAssetsYaml = await dryRunNativeAssetsWindows( projectUri: projectUri, @@ -442,8 +441,7 @@ Future dryRunNativeAssetsMultipleOSes({ false, buildRunner, ), - if (targetPlatforms.contains(build_info.TargetPlatform.windows_arm64) || - targetPlatforms.contains(build_info.TargetPlatform.windows_x64) || + if (targetPlatforms.contains(build_info.TargetPlatform.windows_x64) || (targetPlatforms.contains(build_info.TargetPlatform.tester) && OS.current == OS.windows)) ...await dryRunNativeAssetsWindowsInternal( fileSystem, @@ -654,8 +652,6 @@ Target _getNativeTarget(build_info.TargetPlatform targetPlatform) { return Target.linuxArm64; case build_info.TargetPlatform.windows_x64: return Target.windowsX64; - case build_info.TargetPlatform.windows_arm64: - return Target.windowsArm64; case build_info.TargetPlatform.android: case build_info.TargetPlatform.ios: case build_info.TargetPlatform.darwin: diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 87ce7b7222..e22d2ed231 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1630,7 +1630,6 @@ Future getMissingPackageHintForPlatform(TargetPlatform platform) async case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: return null; } } diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 1a2156b440..906c9aba7f 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1953,7 +1953,6 @@ DevelopmentArtifact? artifactFromTargetPlatform(TargetPlatform targetPlatform) { } return null; case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: if (featureFlags.isWindowsEnabled) { return DevelopmentArtifact.windows; } diff --git a/packages/flutter_tools/lib/src/sksl_writer.dart b/packages/flutter_tools/lib/src/sksl_writer.dart index 706cfe1976..a0b2f863a8 100644 --- a/packages/flutter_tools/lib/src/sksl_writer.dart +++ b/packages/flutter_tools/lib/src/sksl_writer.dart @@ -54,7 +54,6 @@ Future sharedSkSlWriter(Device device, Map? data, { case TargetPlatform.tester: case TargetPlatform.web_javascript: case TargetPlatform.windows_x64: - case TargetPlatform.windows_arm64: break; } final Map manifest = { diff --git a/packages/flutter_tools/lib/src/test/test_compiler.dart b/packages/flutter_tools/lib/src/test/test_compiler.dart index 5d1cd9732a..1433a7150c 100644 --- a/packages/flutter_tools/lib/src/test/test_compiler.dart +++ b/packages/flutter_tools/lib/src/test/test_compiler.dart @@ -10,7 +10,6 @@ import 'package:meta/meta.dart'; import '../artifacts.dart'; import '../base/file_system.dart'; -import '../base/os.dart' show HostPlatform; import '../base/platform.dart'; import '../build_info.dart'; import '../bundle.dart'; @@ -198,15 +197,8 @@ class TestCompiler { buildRunner: buildRunner, ); } else if (globals.platform.isWindows) { - final TargetPlatform targetPlatform; - if (globals.os.hostPlatform == HostPlatform.windows_x64) { - targetPlatform = TargetPlatform.windows_x64; - } else { - targetPlatform = TargetPlatform.windows_arm64; - } (nativeAssetsYaml, _) = await buildNativeAssetsWindows( buildMode: buildInfo.mode, - targetPlatform: targetPlatform, projectUri: projectUri, flutterTester: true, fileSystem: globals.fs, diff --git a/packages/flutter_tools/lib/src/windows/application_package.dart b/packages/flutter_tools/lib/src/windows/application_package.dart index 3fd8be87aa..a5b3cb6c80 100644 --- a/packages/flutter_tools/lib/src/windows/application_package.dart +++ b/packages/flutter_tools/lib/src/windows/application_package.dart @@ -78,7 +78,7 @@ abstract class WindowsApp extends ApplicationPackage { @override String get displayName => id; - String executable(BuildMode buildMode, TargetPlatform targetPlatform); + String executable(BuildMode buildMode); } class PrebuiltWindowsApp extends WindowsApp implements PrebuiltApplicationPackage { @@ -91,7 +91,7 @@ class PrebuiltWindowsApp extends WindowsApp implements PrebuiltApplicationPackag final String _executable; @override - String executable(BuildMode buildMode, TargetPlatform targetPlatform) => _executable; + String executable(BuildMode buildMode) => _executable; @override String get name => _executable; @@ -108,10 +108,10 @@ class BuildableWindowsApp extends WindowsApp { final WindowsProject project; @override - String executable(BuildMode buildMode, TargetPlatform targetPlatform) { + String executable(BuildMode buildMode) { final String? binaryName = getCmakeExecutableName(project); return globals.fs.path.join( - getWindowsBuildDirectory(targetPlatform), + getWindowsBuildDirectory(TargetPlatform.windows_x64), 'runner', sentenceCase(buildMode.cliName), '$binaryName.exe', diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index 813100dd57..eed8ef17d4 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -30,10 +30,7 @@ import 'visual_studio.dart'; const String _kBadCharacters = r"'#!$^&*=|,;<>?"; /// Builds the Windows project using msbuild. -Future buildWindows( - WindowsProject windowsProject, - BuildInfo buildInfo, - TargetPlatform targetPlatform, { +Future buildWindows(WindowsProject windowsProject, BuildInfo buildInfo, { String? target, VisualStudio? visualStudioOverride, SizeAnalyzer? sizeAnalyzer, @@ -59,6 +56,8 @@ Future buildWindows( 'to learn about adding Windows support to a project.'); } + // TODO(pbo-linaro): Add support for windows-arm64 platform, https://github.com/flutter/flutter/issues/129807 + const TargetPlatform targetPlatform = TargetPlatform.windows_x64; final Directory buildDirectory = globals.fs.directory(globals.fs.path.join( projectPath, getWindowsBuildDirectory(targetPlatform), @@ -84,7 +83,6 @@ Future buildWindows( platform: globals.platform, logger: globals.logger, processManager: globals.processManager, - osUtils: globals.os, ); final String? cmakePath = visualStudio.cmakePath; final String? cmakeGenerator = visualStudio.cmakeGenerator; @@ -101,9 +99,9 @@ Future buildWindows( await _runCmakeGeneration( cmakePath: cmakePath, generator: cmakeGenerator, - targetPlatform: targetPlatform, buildDir: buildDirectory, sourceDir: windowsProject.cmakeFile.parent, + targetPlatform: targetPlatform, ); if (visualStudio.displayVersion == '17.1.0') { _fixBrokenCmakeGeneration(buildDirectory); @@ -130,7 +128,7 @@ Future buildWindows( } if (buildInfo.codeSizeDirectory != null && sizeAnalyzer != null) { - final String arch = getNameForTargetPlatform(targetPlatform); + final String arch = getNameForTargetPlatform(TargetPlatform.windows_x64); final File codeSizeFile = globals.fs.directory(buildInfo.codeSizeDirectory) .childFile('snapshot.$arch.json'); final File precompilerTrace = globals.fs.directory(buildInfo.codeSizeDirectory) @@ -167,26 +165,23 @@ Future buildWindows( } } -String getCmakeWindowsArch(TargetPlatform targetPlatform) { - return switch (targetPlatform) { - TargetPlatform.windows_x64 => 'x64', - TargetPlatform.windows_arm64 => 'ARM64', - _ => throw Exception('Unsupported target platform "$targetPlatform".'), - }; -} - Future _runCmakeGeneration({ required String cmakePath, required String generator, - required TargetPlatform targetPlatform, required Directory buildDir, required Directory sourceDir, + required TargetPlatform targetPlatform, }) async { + if (targetPlatform != TargetPlatform.windows_x64) { + throwToolExit('Windows build supports only x64 target architecture'); + } + final Stopwatch sw = Stopwatch()..start(); await buildDir.create(recursive: true); int result; - + const String arch = 'x64'; + const String flutterTargetPlatform = 'windows-x64'; try { result = await globals.processUtils.stream( [ @@ -198,8 +193,8 @@ Future _runCmakeGeneration({ '-G', generator, '-A', - getCmakeWindowsArch(targetPlatform), - '-DFLUTTER_TARGET_PLATFORM=${getNameForTargetPlatform(targetPlatform)}', + arch, + '-DFLUTTER_TARGET_PLATFORM=$flutterTargetPlatform', ], trace: true, ); diff --git a/packages/flutter_tools/lib/src/windows/native_assets.dart b/packages/flutter_tools/lib/src/windows/native_assets.dart index fed23bbcac..c5f5835d00 100644 --- a/packages/flutter_tools/lib/src/windows/native_assets.dart +++ b/packages/flutter_tools/lib/src/windows/native_assets.dart @@ -72,7 +72,6 @@ Future cCompilerConfigWindows() async { platform: globals.platform, logger: globals.logger, processManager: globals.processManager, - osUtils: globals.os, ); return CCompilerConfig( diff --git a/packages/flutter_tools/lib/src/windows/visual_studio.dart b/packages/flutter_tools/lib/src/windows/visual_studio.dart index 93d6506f4e..5251450a81 100644 --- a/packages/flutter_tools/lib/src/windows/visual_studio.dart +++ b/packages/flutter_tools/lib/src/windows/visual_studio.dart @@ -9,7 +9,6 @@ import '../base/common.dart'; import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; -import '../base/os.dart' show HostPlatform, OperatingSystemUtils; import '../base/platform.dart'; import '../base/process.dart'; import '../base/version.dart'; @@ -22,18 +21,15 @@ class VisualStudio { required ProcessManager processManager, required Platform platform, required Logger logger, - required OperatingSystemUtils osUtils, }) : _platform = platform, _fileSystem = fileSystem, _processUtils = ProcessUtils(processManager: processManager, logger: logger), - _logger = logger, - _osUtils = osUtils; + _logger = logger; final FileSystem _fileSystem; final Platform _platform; final ProcessUtils _processUtils; final Logger _logger; - final OperatingSystemUtils _osUtils; /// Matches the description property from the vswhere.exe JSON output. final RegExp _vswhereDescriptionProperty = RegExp(r'\s*"description"\s*:\s*".*"\s*,?'); @@ -212,8 +208,6 @@ class VisualStudio { return null; } - final String arch = _osUtils.hostPlatform == HostPlatform.windows_arm64 ? 'arm64': 'x64'; - return _fileSystem.path.joinAll([ details.installationPath!, 'VC', @@ -221,8 +215,8 @@ class VisualStudio { 'MSVC', details.msvcVersion!, 'bin', - 'Host$arch', - arch, + 'Hostx64', + 'x64', executable, ]); } @@ -235,14 +229,12 @@ class VisualStudio { return null; } - final String arch = _osUtils.hostPlatform == HostPlatform.windows_arm64 ? 'arm64': '64'; - return _fileSystem.path.joinAll([ details.installationPath!, 'VC', 'Auxiliary', 'Build', - 'vcvars$arch.bat', + 'vcvars64.bat', ]); } diff --git a/packages/flutter_tools/lib/src/windows/windows_device.dart b/packages/flutter_tools/lib/src/windows/windows_device.dart index b7be891e09..d94b8bbaef 100644 --- a/packages/flutter_tools/lib/src/windows/windows_device.dart +++ b/packages/flutter_tools/lib/src/windows/windows_device.dart @@ -24,8 +24,7 @@ class WindowsDevice extends DesktopDevice { required Logger logger, required FileSystem fileSystem, required OperatingSystemUtils operatingSystemUtils, - }) : _operatingSystemUtils = operatingSystemUtils, - super( + }) : super( 'windows', platformType: PlatformType.windows, ephemeral: false, @@ -35,8 +34,6 @@ class WindowsDevice extends DesktopDevice { operatingSystemUtils: operatingSystemUtils, ); - final OperatingSystemUtils _operatingSystemUtils; - @override bool isSupported() => true; @@ -44,12 +41,7 @@ class WindowsDevice extends DesktopDevice { String get name => 'Windows'; @override - Future get targetPlatform async => _targetPlatform; - - TargetPlatform get _targetPlatform => switch (_operatingSystemUtils.hostPlatform) { - HostPlatform.windows_arm64 => TargetPlatform.windows_arm64, - _ => TargetPlatform.windows_x64, - }; + Future get targetPlatform async => TargetPlatform.windows_x64; @override bool isSupportedForProject(FlutterProject flutterProject) { @@ -64,14 +56,13 @@ class WindowsDevice extends DesktopDevice { await buildWindows( FlutterProject.current().windows, buildInfo, - _targetPlatform, target: mainPath, ); } @override String executablePathForDevice(covariant WindowsApp package, BuildInfo buildInfo) { - return package.executable(buildInfo.mode, _targetPlatform); + return package.executable(buildInfo.mode); } } diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index 2579d919b9..79fb6dee1f 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -7,12 +7,10 @@ import 'package:file_testing/file_testing.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_windows.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; -import 'package:flutter_tools/src/windows/build_windows.dart'; import 'package:flutter_tools/src/windows/visual_studio.dart'; import 'package:test/fake.dart'; import 'package:unified_analytics/unified_analytics.dart'; @@ -83,7 +81,6 @@ void main() { FakeCommand cmakeGenerationCommand({ void Function()? onRun, String generator = _defaultGenerator, - TargetPlatform targetPlatform = TargetPlatform.windows_x64, }) { return FakeCommand( command: [ @@ -95,7 +92,7 @@ void main() { '-G', generator, '-A', - getCmakeWindowsArch(targetPlatform), + 'x64', '-DFLUTTER_TARGET_PLATFORM=windows-x64', ], onRun: onRun, @@ -129,7 +126,7 @@ void main() { } testUsingContext('Windows build fails when there is no cmake path', () async { - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = FakeVisualStudio(cmakePath: null); setUpMockProjectFilesForBuild(); @@ -145,7 +142,7 @@ void main() { testUsingContext('Windows build fails when there is no windows project', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockCoreProjectFiles(); @@ -163,7 +160,7 @@ void main() { testUsingContext('Windows build fails on non windows platform', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -179,7 +176,7 @@ void main() { testUsingContext('Windows build fails when feature is disabled', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -195,7 +192,7 @@ void main() { testUsingContext('Windows build does not spew stdout to status logger', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -220,7 +217,7 @@ void main() { testUsingContext('Windows build sends timing events', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -260,7 +257,7 @@ void main() { testUsingContext('Windows build extracts errors from stdout', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -318,7 +315,7 @@ C:\foo\windows\x64\runner\main.cpp(17,1): error C2065: 'Baz': undeclared identif testUsingContext('Windows verbose build sets VERBOSE_SCRIPT_LOGGING', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -344,7 +341,7 @@ C:\foo\windows\x64\runner\main.cpp(17,1): error C2065: 'Baz': undeclared identif testUsingContext('Windows build works around CMake generation bug', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(displayVersion: '17.1.0'); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -481,7 +478,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build invokes build and writes generated files', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -551,7 +548,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows profile build passes Profile configuration', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -574,7 +571,7 @@ if %errorlevel% neq 0 goto :VCEnd const String generator = 'A different generator'; final FakeVisualStudio fakeVisualStudio = FakeVisualStudio( cmakeGenerator: generator); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -595,7 +592,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext("Windows build uses pubspec's version", () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -641,7 +638,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build uses build-name and build-number', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -685,7 +682,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build build-name overrides pubspec', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -732,7 +729,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build build-number overrides pubspec', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -779,7 +776,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build build-name and build-number override pubspec', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -827,7 +824,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build warns on non-numeric build-number', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -877,7 +874,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Windows build warns on complex build-number', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -926,14 +923,14 @@ if %errorlevel% neq 0 goto :VCEnd }); testUsingContext('hidden when not enabled on Windows host', () { - expect(BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()).hidden, true); + expect(BuildWindowsCommand(logger: BufferLogger.test()).hidden, true); }, overrides: { FeatureFlags: () => TestFeatureFlags(), Platform: () => windowsPlatform, }); testUsingContext('Not hidden when enabled and on Windows host', () { - expect(BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()).hidden, false); + expect(BuildWindowsCommand(logger: BufferLogger.test()).hidden, false); }, overrides: { FeatureFlags: () => TestFeatureFlags(isWindowsEnabled: true), Platform: () => windowsPlatform, @@ -941,7 +938,7 @@ if %errorlevel% neq 0 goto :VCEnd testUsingContext('Performs code size analysis and sends analytics', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); @@ -997,7 +994,7 @@ if %errorlevel% neq 0 goto :VCEnd // is resolved on the VS side, we can allow these paths again testUsingContext('Test bad path characters', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; fileSystem.currentDirectory = fileSystem.directory("test_'path") ..createSync(); @@ -1024,7 +1021,7 @@ if %errorlevel% neq 0 goto :VCEnd // And tests the case where stdout contains the error about missing assets testUsingContext('Windows build extracts errors related to pubspec.yaml from stdout', () async { final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()) + final BuildWindowsCommand command = BuildWindowsCommand(logger: BufferLogger.test()) ..visualStudioOverride = fakeVisualStudio; setUpMockProjectFilesForBuild(); diff --git a/packages/flutter_tools/test/general.shard/base/os_test.dart b/packages/flutter_tools/test/general.shard/base/os_test.dart index ad5b23c498..5d6765cc8c 100644 --- a/packages/flutter_tools/test/general.shard/base/os_test.dart +++ b/packages/flutter_tools/test/general.shard/base/os_test.dart @@ -160,7 +160,7 @@ void main() { expect(utils.hostPlatform, HostPlatform.linux_x64); }); - testWithoutContext('Windows default', () async { + testWithoutContext('Windows', () async { final OperatingSystemUtils utils = createOSUtils(FakePlatform(operatingSystem: 'windows')); expect(utils.hostPlatform, HostPlatform.windows_x64); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart index 11b85dd995..cebfff087a 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart @@ -55,7 +55,7 @@ void main() { } fileSystem.directory('windows').createSync(); - await const UnpackWindows(TargetPlatform.windows_x64).build(environment); + await const UnpackWindows().build(environment); // Output files are copied correctly. expect(fileSystem.file(r'C:\windows\flutter\ephemeral\flutter_export.h'), exists); @@ -147,7 +147,7 @@ void main() { }, )); - await const DebugBundleWindowsAssets(TargetPlatform.windows_x64).build(environment); + await const DebugBundleWindowsAssets().build(environment); // Depfile is created and dill is copied. expect(environment.buildDir.childFile('flutter_assets.d'), exists); @@ -175,7 +175,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)).build(environment); - await const ProfileBundleWindowsAssets(TargetPlatform.windows_x64).build(environment); + await const ProfileBundleWindowsAssets().build(environment); // Depfile is created and so is copied. expect(environment.buildDir.childFile('flutter_assets.d'), exists); @@ -202,7 +202,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)).build(environment); - await const ReleaseBundleWindowsAssets(TargetPlatform.windows_x64).build(environment); + await const ReleaseBundleWindowsAssets().build(environment); // Depfile is created and so is copied. expect(environment.buildDir.childFile('flutter_assets.d'), exists); diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index 0ec69bca6a..f766521945 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -615,7 +615,7 @@ void main() { expect(artifacts.getBinaryDirs(), >[ ['darwin-x64', 'darwin-arm64/font-subset.zip'], ['linux-arm64', 'linux-arm64/font-subset.zip'], - ['windows-arm64', 'windows-arm64/font-subset.zip'], + ['windows-x64', 'windows-x64/font-subset.zip'], // arm64 windows hosts are not supported now ]); }); diff --git a/packages/flutter_tools/test/general.shard/commands/build_test.dart b/packages/flutter_tools/test/general.shard/commands/build_test.dart index 10e7a95f60..090924bed9 100644 --- a/packages/flutter_tools/test/general.shard/commands/build_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/build_test.dart @@ -52,7 +52,7 @@ void main() { final Platform platform = FakePlatform(); final BufferLogger logger = BufferLogger.test(); final List commands = [ - BuildWindowsCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()), + BuildWindowsCommand(logger: BufferLogger.test()), BuildLinuxCommand(logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils()), BuildMacosCommand(logger: BufferLogger.test(), verboseHelp: false), BuildWebCommand(fileSystem: fileSystem, logger: BufferLogger.test(), verboseHelp: false), diff --git a/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart b/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart index ba82c8fb48..57b07e929e 100644 --- a/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/visual_studio_test.dart @@ -12,7 +12,6 @@ import 'package:flutter_tools/src/windows/visual_studio.dart'; import '../../src/common.dart'; import '../../src/context.dart'; -import '../../src/fakes.dart'; const String programFilesPath = r'C:\Program Files (x86)'; const String visualStudioPath = programFilesPath + r'\Microsoft Visual Studio\2017\Community'; @@ -345,7 +344,6 @@ VisualStudioFixture setUpVisualStudio() { platform: windowsPlatform, logger: logger, processManager: processManager, - osUtils: FakeOperatingSystemUtils(), ); return VisualStudioFixture(visualStudio, fileSystem, processManager, logger); } @@ -384,7 +382,6 @@ void main() { fileSystem: MemoryFileSystem.test(style: FileSystemStyle.windows), platform: FakePlatform(operatingSystem: 'windows'), processManager: FakeProcessManager.any(), - osUtils: FakeOperatingSystemUtils(), ); expect(() => visualStudio.isInstalled, @@ -407,7 +404,6 @@ void main() { fileSystem: fileSystem, platform: windowsPlatform, processManager: fakeProcessManager, - osUtils: FakeOperatingSystemUtils(), ); expect(visualStudio.isInstalled, false); @@ -430,7 +426,6 @@ void main() { fileSystem: fileSystem, platform: windowsPlatform, processManager: fakeProcessManager, - osUtils: FakeOperatingSystemUtils(), ); expect(visualStudio.isInstalled, false); diff --git a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart index 7adb48f97d..6128ec607c 100644 --- a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart @@ -130,5 +130,5 @@ WindowsDevice setUpWindowsDevice({ class FakeWindowsApp extends Fake implements WindowsApp { @override - String executable(BuildMode buildMode, TargetPlatform targetPlatform) => '${buildMode.cliName}/executable'; + String executable(BuildMode buildMode) => '${buildMode.cliName}/executable'; } diff --git a/packages/flutter_tools/test/integration.shard/flutter_build_windows_test.dart b/packages/flutter_tools/test/integration.shard/flutter_build_windows_test.dart index a7bd8ff82f..d238bb226a 100644 --- a/packages/flutter_tools/test/integration.shard/flutter_build_windows_test.dart +++ b/packages/flutter_tools/test/integration.shard/flutter_build_windows_test.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:ffi' show Abi; import 'dart:io' as io; import 'package:file/file.dart'; @@ -42,18 +41,11 @@ void main() { projectRoot = tempDir.childDirectory('hello'); - final String arch; - if (Abi.current() == Abi.windowsArm64) { - arch = 'arm64'; - } else { - arch = 'x64'; - } - releaseDir = fileSystem.directory(fileSystem.path.join( projectRoot.path, 'build', 'windows', - arch, + 'x64', 'runner', 'Release', ));