From 21d996929bb96facd791d650d1ad35e6024d44ae Mon Sep 17 00:00:00 2001 From: Sigurd Meldgaard Date: Tue, 2 Jul 2024 11:19:31 +0200 Subject: [PATCH] Refactor BuildInfo to always require packageConfigPath (#150559) Refactor warming up to #150196 --- .../flutter_tools/bin/fuchsia_tester.dart | 6 +- .../flutter_tools/lib/src/build_info.dart | 53 ++++- .../lib/src/commands/build_aar.dart | 3 +- .../lib/src/commands/build_appbundle.dart | 7 +- .../lib/src/commands/build_ios_framework.dart | 4 - .../lib/src/commands/build_linux.dart | 4 +- .../lib/src/commands/build_macos.dart | 4 +- .../lib/src/commands/build_preview.dart | 21 +- .../lib/src/commands/build_web.dart | 6 +- .../lib/src/commands/build_windows.dart | 4 +- .../lib/src/commands/daemon.dart | 2 +- .../flutter_tools/lib/src/commands/run.dart | 7 +- .../flutter_tools/lib/src/commands/test.dart | 4 +- .../src/fuchsia/fuchsia_kernel_compiler.dart | 10 +- .../lib/src/isolated/resident_web_runner.dart | 2 +- .../lib/src/resident_runner.dart | 8 +- .../lib/src/runner/flutter_command.dart | 21 +- .../lib/src/test/flutter_tester_device.dart | 2 +- .../flutter_tools/lib/src/test/runner.dart | 2 +- .../lib/src/test/test_compiler.dart | 2 +- .../lib/src/test/web_test_compiler.dart | 2 +- .../lib/src/tester/flutter_tester.dart | 2 +- .../flutter_tools/lib/src/xcode_project.dart | 4 +- .../hermetic/flutter_web_platform_test.dart | 3 +- .../commands.shard/hermetic/run_test.dart | 4 +- .../android/android_gradle_builder_test.dart | 79 ++++++- .../android/build_validation_test.dart | 32 ++- .../android/gradle_find_bundle_test.dart | 200 ++++++++++++++---- .../general.shard/android/gradle_test.dart | 181 +++++++++++++--- .../application_package_test.dart | 9 +- .../test/general.shard/build_info_test.dart | 6 +- .../general.shard/bundle_builder_test.dart | 1 + .../test/general.shard/cmake_test.dart | 33 ++- .../general.shard/commands/build_test.dart | 1 + .../flutter_tester_device_test.dart | 1 + .../fuchsia/fuchsia_device_start_test.dart | 24 ++- .../fuchsia/fuchsia_kernel_compiler_test.dart | 17 +- .../ios_device_start_nonprebuilt_test.dart | 6 + .../general.shard/ios/simulators_test.dart | 8 +- .../general.shard/ios/xcodeproj_test.dart | 56 ++--- .../isolated/resident_runner_test.dart | 1 + .../macos/application_package_test.dart | 4 +- .../test/general.shard/project_test.dart | 4 +- .../general.shard/resident_runner_test.dart | 14 +- .../resident_web_runner_test.dart | 2 +- .../runner/flutter_command_test.dart | 2 +- .../general.shard/terminal_handler_test.dart | 11 +- .../test/test_compiler_test.dart | 3 +- .../test/web_test_compiler_test.dart | 1 + .../tester/flutter_tester_test.dart | 11 +- .../web/devfs_web_ddc_modules_test.dart | 31 ++- .../general.shard/web/devfs_web_test.dart | 11 +- 52 files changed, 713 insertions(+), 223 deletions(-) diff --git a/packages/flutter_tools/bin/fuchsia_tester.dart b/packages/flutter_tools/bin/fuchsia_tester.dart index 49392494a8..00a379e6ec 100644 --- a/packages/flutter_tools/bin/fuchsia_tester.dart +++ b/packages/flutter_tools/bin/fuchsia_tester.dart @@ -145,7 +145,11 @@ Future run(List args) async { BuildMode.debug, '', treeShakeIcons: false, - packagesPath: globals.fs.path.normalize(globals.fs.path.absolute(argResults[_kOptionPackages] as String)), + packageConfigPath: globals.fs.path.normalize( + globals.fs.path.absolute( + argResults[_kOptionPackages] as String, + ), + ), ), ), watcher: collector, diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart index 43f58bcfa6..2fb3b34a2a 100644 --- a/packages/flutter_tools/lib/src/build_info.dart +++ b/packages/flutter_tools/lib/src/build_info.dart @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:meta/meta.dart'; + import 'package:package_config/package_config_types.dart'; import 'artifacts.dart'; @@ -37,7 +39,7 @@ class BuildInfo { List? dartExperiments, required this.treeShakeIcons, this.performanceMeasurementFile, - this.packagesPath = '.dart_tool/package_config.json', // TODO(zanderso): make this required and remove the default. + required this.packageConfigPath, this.nullSafetyMode = NullSafetyMode.sound, this.codeSizeDirectory, this.androidGradleDaemon = true, @@ -75,7 +77,7 @@ class BuildInfo { /// /// This is used by package:package_config to locate the actual package_config.json /// file. If not provided, defaults to `.dart_tool/package_config.json`. - final String packagesPath; + final String packageConfigPath; final List fileSystemRoots; final String? fileSystemScheme; @@ -184,10 +186,47 @@ class BuildInfo { /// If set, web builds will use the locally built CanvasKit instead of using the CDN final bool useLocalCanvasKit; - static const BuildInfo debug = BuildInfo(BuildMode.debug, null, trackWidgetCreation: true, treeShakeIcons: false); - static const BuildInfo profile = BuildInfo(BuildMode.profile, null, treeShakeIcons: kIconTreeShakerEnabledDefault); - static const BuildInfo jitRelease = BuildInfo(BuildMode.jitRelease, null, treeShakeIcons: kIconTreeShakerEnabledDefault); - static const BuildInfo release = BuildInfo(BuildMode.release, null, treeShakeIcons: kIconTreeShakerEnabledDefault); + /// Can be used when the actual information is not needed. + static const BuildInfo dummy = BuildInfo( + BuildMode.debug, + null, + trackWidgetCreation: true, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); + + @visibleForTesting + static const BuildInfo debug = BuildInfo( + BuildMode.debug, + null, + trackWidgetCreation: true, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); + + @visibleForTesting + static const BuildInfo profile = BuildInfo( + BuildMode.profile, + null, + treeShakeIcons: kIconTreeShakerEnabledDefault, + packageConfigPath: '.dart_tool/package_config.json', + ); + + @visibleForTesting + static const BuildInfo jitRelease = BuildInfo( + BuildMode.jitRelease, + null, + treeShakeIcons: kIconTreeShakerEnabledDefault, + packageConfigPath: '.dart_tool/package_config.json', + ); + + @visibleForTesting + static const BuildInfo release = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: kIconTreeShakerEnabledDefault, + packageConfigPath: '.dart_tool/package_config.json', + ); /// Returns whether a debug build is requested. /// @@ -293,7 +332,7 @@ class BuildInfo { 'PERFORMANCE_MEASUREMENT_FILE': performanceMeasurementFile!, if (bundleSkSLPath != null) 'BUNDLE_SKSL_PATH': bundleSkSLPath!, - 'PACKAGE_CONFIG': packagesPath, + 'PACKAGE_CONFIG': packageConfigPath, if (codeSizeDirectory != null) 'CODE_SIZE_DIRECTORY': codeSizeDirectory!, if (flavor != null) diff --git a/packages/flutter_tools/lib/src/commands/build_aar.dart b/packages/flutter_tools/lib/src/commands/build_aar.dart index 536d8fce1e..9c25abb196 100644 --- a/packages/flutter_tools/lib/src/commands/build_aar.dart +++ b/packages/flutter_tools/lib/src/commands/build_aar.dart @@ -78,6 +78,7 @@ class BuildAarCommand extends BuildSubCommand { DevelopmentArtifact.androidGenSnapshot, }; + @override late final FlutterProject project = _getProject(); @override @@ -196,7 +197,7 @@ class BuildAarCommand extends BuildSubCommand { FlutterProject _getProject() { final List remainingArguments = argResults!.rest; if (remainingArguments.isEmpty) { - return FlutterProject.current(); + return super.project; } final File mainFile = _fileSystem.file(remainingArguments.first); final String path; diff --git a/packages/flutter_tools/lib/src/commands/build_appbundle.dart b/packages/flutter_tools/lib/src/commands/build_appbundle.dart index 0dee51e3a2..d0a6188293 100644 --- a/packages/flutter_tools/lib/src/commands/build_appbundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_appbundle.dart @@ -137,7 +137,6 @@ class BuildAppBundleCommand extends BuildSubCommand { if (globals.androidSdk == null) { exitWithNoSdkMessage(); } - final AndroidBuildInfo androidBuildInfo = AndroidBuildInfo(await getBuildInfo(), targetArchs: stringsArg('target-platform').map(getAndroidArchForName), ); @@ -146,7 +145,7 @@ class BuildAppBundleCommand extends BuildSubCommand { final List? deferredComponents = FlutterProject.current().manifest.deferredComponents; if (deferredComponents != null && boolArg('deferred-components') && boolArg('validate-deferred-components') && !boolArg('debug')) { final DeferredComponentsPrebuildValidator validator = DeferredComponentsPrebuildValidator( - FlutterProject.current().directory, + project.directory, globals.logger, globals.platform, title: 'Deferred components prebuild validation', @@ -160,7 +159,7 @@ class BuildAppBundleCommand extends BuildSubCommand { // Delete intermediates libs dir for components to resolve mismatching // abis supported by base and dynamic feature modules. for (final DeferredComponent component in deferredComponents) { - final Directory deferredLibsIntermediate = FlutterProject.current().directory + final Directory deferredLibsIntermediate = project.directory .childDirectory('build') .childDirectory(component.name) .childDirectory('intermediates') @@ -177,7 +176,7 @@ class BuildAppBundleCommand extends BuildSubCommand { displayNullSafetyMode(androidBuildInfo.buildInfo); globals.terminal.usesTerminalUi = true; await androidBuilder?.buildAab( - project: FlutterProject.current(), + project: project, target: targetFile, androidBuildInfo: androidBuildInfo, validateDeferredComponents: boolArg('validate-deferred-components'), diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index 60c2215558..e0452f0012 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart @@ -20,7 +20,6 @@ import '../cache.dart'; import '../flutter_plugins.dart'; import '../globals.dart' as globals; import '../macos/cocoapod_utils.dart'; -import '../project.dart'; import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult; import '../version.dart'; import 'build.dart'; @@ -108,9 +107,6 @@ abstract class BuildFrameworkCommand extends BuildSubCommand { @override bool get reportNullSafety => false; - @protected - late final FlutterProject project = FlutterProject.current(); - Future> getBuildInfos() async { return [ if (boolArg('debug')) await getBuildInfo(forcedBuildMode: BuildMode.debug), diff --git a/packages/flutter_tools/lib/src/commands/build_linux.dart b/packages/flutter_tools/lib/src/commands/build_linux.dart index 08623f373f..9ec86cd588 100644 --- a/packages/flutter_tools/lib/src/commands/build_linux.dart +++ b/packages/flutter_tools/lib/src/commands/build_linux.dart @@ -12,7 +12,6 @@ import '../cache.dart'; import '../features.dart'; import '../globals.dart' as globals; import '../linux/build_linux.dart'; -import '../project.dart'; import '../runner/flutter_command.dart' show FlutterCommandResult; import 'build.dart'; @@ -60,7 +59,6 @@ class BuildLinuxCommand extends BuildSubCommand { @override Future runCommand() async { final BuildInfo buildInfo = await getBuildInfo(); - final FlutterProject flutterProject = FlutterProject.current(); final TargetPlatform targetPlatform = getTargetPlatformForName(stringArg('target-platform')!); final bool needCrossBuild = @@ -87,7 +85,7 @@ class BuildLinuxCommand extends BuildSubCommand { displayNullSafetyMode(buildInfo); final Logger logger = globals.logger; await buildLinux( - flutterProject.linux, + project.linux, buildInfo, target: targetFile, sizeAnalyzer: SizeAnalyzer( diff --git a/packages/flutter_tools/lib/src/commands/build_macos.dart b/packages/flutter_tools/lib/src/commands/build_macos.dart index b3110a92fa..d941eceb7e 100644 --- a/packages/flutter_tools/lib/src/commands/build_macos.dart +++ b/packages/flutter_tools/lib/src/commands/build_macos.dart @@ -9,7 +9,6 @@ import '../cache.dart'; import '../features.dart'; import '../globals.dart' as globals; import '../macos/build_macos.dart'; -import '../project.dart'; import '../runner/flutter_command.dart' show FlutterCommandResult; import 'build.dart'; @@ -51,7 +50,6 @@ class BuildMacosCommand extends BuildSubCommand { @override Future runCommand() async { final BuildInfo buildInfo = await getBuildInfo(); - final FlutterProject flutterProject = FlutterProject.current(); if (!featureFlags.isMacOSEnabled) { throwToolExit('"build macos" is not currently supported. To enable, run "flutter config --enable-macos-desktop".'); } @@ -60,7 +58,7 @@ class BuildMacosCommand extends BuildSubCommand { } displayNullSafetyMode(buildInfo); await buildMacOS( - flutterProject: flutterProject, + flutterProject: project, buildInfo: buildInfo, targetOverride: targetFile, verboseLogging: globals.logger.isVerbose, diff --git a/packages/flutter_tools/lib/src/commands/build_preview.dart b/packages/flutter_tools/lib/src/commands/build_preview.dart index ec20f0cc23..3c5ab3325a 100644 --- a/packages/flutter_tools/lib/src/commands/build_preview.dart +++ b/packages/flutter_tools/lib/src/commands/build_preview.dart @@ -10,6 +10,7 @@ import '../base/io.dart'; import '../base/process.dart'; import '../build_info.dart'; import '../cache.dart'; +import '../dart/package_map.dart'; import '../globals.dart' as globals; import '../project.dart'; import '../runner/flutter_command.dart' show FlutterCommandResult; @@ -45,13 +46,6 @@ class BuildPreviewCommand extends BuildSubCommand { final ProcessUtils processUtils; final Artifacts artifacts; - static const BuildInfo buildInfo = BuildInfo( - BuildMode.debug, - null, // no flavor - // users may add icons later - treeShakeIcons: false, - ); - @override void requiresPubspecYaml() {} @@ -65,6 +59,19 @@ class BuildPreviewCommand extends BuildSubCommand { final Directory targetDir = fs.systemTempDirectory.createTempSync('flutter-build-preview'); try { final FlutterProject flutterProject = await _createProject(targetDir); + + final BuildInfo buildInfo = BuildInfo( + BuildMode.debug, + null, // no flavor + // users may add icons later + packageConfigPath: flutterProject.packageConfigFile.path, + packageConfig: await loadPackageConfigWithLogging( + flutterProject.packageConfigFile, + logger: logger, + ), + treeShakeIcons: false, + ); + // TODO(loic-sharma): Support windows-arm64 preview device, https://github.com/flutter/flutter/issues/139949. await buildWindows( flutterProject.windows, diff --git a/packages/flutter_tools/lib/src/commands/build_web.dart b/packages/flutter_tools/lib/src/commands/build_web.dart index b0bfc82719..92c2ec2e13 100644 --- a/packages/flutter_tools/lib/src/commands/build_web.dart +++ b/packages/flutter_tools/lib/src/commands/build_web.dart @@ -8,7 +8,6 @@ import '../base/utils.dart'; import '../build_info.dart'; import '../features.dart'; import '../globals.dart' as globals; -import '../project.dart'; import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult, FlutterOptions; import '../web/compile.dart'; @@ -184,7 +183,6 @@ class BuildWebCommand extends BuildSubCommand { )]; } - final FlutterProject flutterProject = FlutterProject.current(); final String target = stringArg('target')!; final BuildInfo buildInfo = await getBuildInfo(); if (buildInfo.isDebug) { @@ -197,7 +195,7 @@ class BuildWebCommand extends BuildSubCommand { '--base-href should start and end with /', ); } - if (!flutterProject.web.existsSync()) { + if (!project.web.existsSync()) { throwToolExit('Missing index.html.'); } if (!_fileSystem.currentDirectory @@ -227,7 +225,7 @@ class BuildWebCommand extends BuildSubCommand { analytics: globals.analytics, ); await webBuilder.buildWeb( - flutterProject, + project, target, buildInfo, ServiceWorkerStrategy.fromCliName(stringArg('pwa-strategy')), diff --git a/packages/flutter_tools/lib/src/commands/build_windows.dart b/packages/flutter_tools/lib/src/commands/build_windows.dart index 3267782fd6..798263434f 100644 --- a/packages/flutter_tools/lib/src/commands/build_windows.dart +++ b/packages/flutter_tools/lib/src/commands/build_windows.dart @@ -11,7 +11,6 @@ import '../build_info.dart'; import '../cache.dart'; import '../features.dart'; import '../globals.dart' as globals; -import '../project.dart'; import '../runner/flutter_command.dart' show FlutterCommandResult; import '../windows/build_windows.dart'; import '../windows/visual_studio.dart'; @@ -49,7 +48,6 @@ class BuildWindowsCommand extends BuildSubCommand { @override Future runCommand() async { - final FlutterProject flutterProject = FlutterProject.current(); final BuildInfo buildInfo = await getBuildInfo(); if (!featureFlags.isWindowsEnabled) { throwToolExit('"build windows" is not currently supported. To enable, run "flutter config --enable-windows-desktop".'); @@ -64,7 +62,7 @@ class BuildWindowsCommand extends BuildSubCommand { displayNullSafetyMode(buildInfo); await buildWindows( - flutterProject.windows, + project.windows, buildInfo, targetPlatform, target: targetFile, diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index d94ad567c1..4f1991aa97 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart @@ -1190,7 +1190,7 @@ class DeviceDomain extends Domain { debuggingOptions: DebuggingOptions.fromJson( castStringKeyedMap(args['debuggingOptions'])!, // We are using prebuilts, build info does not matter here. - BuildInfo.debug, + BuildInfo.dummy, ), mainPath: _getStringArg(args, 'mainPath'), route: _getStringArg(args, 'route'), diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 9d17bf597a..c46524bad5 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -593,7 +593,7 @@ class RunCommand extends RunCommandBase { runTargetName: deviceType, runTargetOsVersion: deviceOsVersion, runModeName: modeName, - runProjectModule: FlutterProject.current().isModule, + runProjectModule: project.isModule, runProjectHostLanguage: hostLanguage.join(','), runAndroidEmbeddingVersion: androidEmbeddingVersion, runEnableImpeller: enableImpeller.asBool, @@ -753,9 +753,9 @@ class RunCommand extends RunCommandBase { @override Future runCommand() async { + final BuildInfo buildInfo = await getBuildInfo(); // Enable hot mode by default if `--no-hot` was not passed and we are in // debug mode. - final BuildInfo buildInfo = await getBuildInfo(); final bool hotMode = shouldUseHotMode(buildInfo); final String? applicationBinaryPath = stringArg(FlutterOptions.kUseApplicationBinary); @@ -817,7 +817,6 @@ class RunCommand extends RunCommandBase { stringsArg(FlutterOptions.kEnableExperiment).isNotEmpty) { expFlags = stringsArg(FlutterOptions.kEnableExperiment); } - final FlutterProject flutterProject = FlutterProject.current(); final List flutterDevices = [ for (final Device device in devices!) await FlutterDevice.create( @@ -833,7 +832,7 @@ class RunCommand extends RunCommandBase { final ResidentRunner runner = await createRunner( applicationBinaryPath: applicationBinaryPath, flutterDevices: flutterDevices, - flutterProject: flutterProject, + flutterProject: project, hotMode: hotMode, ); diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index 493e2e268f..c1499ccbd7 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -505,8 +505,8 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { collector = CoverageCollector( verbose: !machine, libraryNames: packagesToInclude, - packagesPath: buildInfo.packagesPath, - resolver: await CoverageCollector.getResolver(buildInfo.packagesPath), + packagesPath: buildInfo.packageConfigPath, + resolver: await CoverageCollector.getResolver(buildInfo.packageConfigPath), testTimeRecorder: testTimeRecorder, branchCoverage: boolArg('branch-coverage'), ); diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart index 65358f9977..f8a16f1832 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart @@ -21,15 +21,17 @@ class FuchsiaKernelCompiler { Future build({ required FuchsiaProject fuchsiaProject, required String target, // E.g., lib/main.dart - BuildInfo buildInfo = BuildInfo.debug, + BuildInfo buildInfo = BuildInfo.dummy, }) async { // TODO(zanderso): Use filesystem root and scheme information from buildInfo. const String multiRootScheme = 'main-root'; - final String packagesFile = fuchsiaProject.project.packagesFile.path; final String outDir = getFuchsiaBuildDirectory(); final String appName = fuchsiaProject.project.manifest.appName; final String fsRoot = fuchsiaProject.project.directory.path; - final String relativePackagesFile = globals.fs.path.relative(packagesFile, from: fsRoot); + final String relativePackageConfigPath = globals.fs.path.relative( + buildInfo.packageConfigPath, + from: fsRoot, + ); final String manifestPath = globals.fs.path.join(outDir, '$appName.dilpmanifest'); final String? kernelCompiler = globals.artifacts?.getArtifactPath( Artifact.fuchsiaKernelCompiler, @@ -58,7 +60,7 @@ class FuchsiaKernelCompiler { '--filesystem-root', fsRoot, '--packages', - '$multiRootScheme:///$relativePackagesFile', + '$multiRootScheme:///$relativePackageConfigPath', '--output', globals.fs.path.join(outDir, '$appName.dil'), '--component-name', diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart index c3c76e98bb..332e964ce0 100644 --- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart +++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart @@ -559,7 +559,7 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive). if (rebuildBundle) { _logger.printTrace('Updating assets'); final int result = await assetBundle.build( - packagesPath: debuggingOptions.buildInfo.packagesPath, + packagesPath: debuggingOptions.buildInfo.packageConfigPath, targetPlatform: TargetPlatform.web_javascript, ); if (result != 0) { diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index d24037b96b..1af14acbb8 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -64,7 +64,7 @@ class FlutterDevice { fileSystemScheme: buildInfo.fileSystemScheme, targetModel: targetModel, dartDefines: buildInfo.dartDefines, - packagesPath: buildInfo.packagesPath, + packagesPath: buildInfo.packageConfigPath, frontendServerStarterPath: buildInfo.frontendServerStarterPath, extraFrontEndOptions: buildInfo.extraFrontEndOptions, artifacts: globals.artifacts!, @@ -164,7 +164,7 @@ class FlutterDevice { dartDefines: buildInfo.dartDefines, librariesSpec: globals.fs.file(globals.artifacts! .getHostArtifact(HostArtifact.flutterWebLibrariesJson)).uri.toString(), - packagesPath: buildInfo.packagesPath, + packagesPath: buildInfo.packageConfigPath, artifacts: globals.artifacts!, processManager: globals.processManager, logger: globals.logger, @@ -197,7 +197,7 @@ class FlutterDevice { extraFrontEndOptions: extraFrontEndOptions, ), assumeInitializeFromDillUpToDate: buildInfo.assumeInitializeFromDillUpToDate, - packagesPath: buildInfo.packagesPath, + packagesPath: buildInfo.packageConfigPath, artifacts: globals.artifacts!, processManager: globals.processManager, logger: globals.logger, @@ -1103,7 +1103,7 @@ abstract class ResidentRunner extends ResidentHandlers { this.machine = false, ResidentDevtoolsHandlerFactory devtoolsHandler = createDefaultHandler, }) : mainPath = globals.fs.file(target).absolute.path, - packagesFilePath = debuggingOptions.buildInfo.packagesPath, + packagesFilePath = debuggingOptions.buildInfo.packageConfigPath, projectRootPath = projectRootPath ?? globals.fs.currentDirectory.path, _dillOutputPath = dillOutputPath, artifactDirectory = dillOutputPath == null diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index ce96b5545e..e4e474ab6e 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1163,13 +1163,18 @@ abstract class FlutterCommand extends Command { ); } + /// Returns a [FlutterProject] view of the current directory or a ToolExit error, + /// if `pubspec.yaml` or `example/pubspec.yaml` is invalid. + FlutterProject get project => FlutterProject.current(); + /// Compute the [BuildInfo] for the current flutter command. + /// /// Commands that build multiple build modes can pass in a [forcedBuildMode] /// to be used instead of parsing flags. /// /// Throws a [ToolExit] if the current set of options is not compatible with /// each other. - Future getBuildInfo({ BuildMode? forcedBuildMode, File? forcedTargetFile }) async { + Future getBuildInfo({BuildMode? forcedBuildMode, File? forcedTargetFile}) async { final bool trackWidgetCreation = argParser.options.containsKey('track-widget-creation') && boolArg('track-widget-creation'); @@ -1177,10 +1182,12 @@ abstract class FlutterCommand extends Command { ? stringArg('build-number') : null; - final File packagesFile = globals.fs.file( - packagesPath ?? globals.fs.path.absolute('.dart_tool', 'package_config.json')); + final File packageConfigFile = globals.fs.file(packagesPath ?? project.packageConfigFile.path); final PackageConfig packageConfig = await loadPackageConfigWithLogging( - packagesFile, logger: globals.logger, throwOnError: false); + packageConfigFile, + logger: globals.logger, + throwOnError: false, + ); final List experiments = argParser.options.containsKey(FlutterOptions.kEnableExperiment) @@ -1281,12 +1288,14 @@ abstract class FlutterCommand extends Command { final Map defineConfigJsonMap = extractDartDefineConfigJsonMap(); final List dartDefines = extractDartDefines(defineConfigJsonMap: defineConfigJsonMap); + final bool useCdn = !argParser.options.containsKey(FlutterOptions.kWebResourcesCdnFlag) || boolArg(FlutterOptions.kWebResourcesCdnFlag); final bool useLocalWebSdk = argParser.options.containsKey(FlutterGlobalOptions.kLocalWebSDKOption) && stringArg(FlutterGlobalOptions.kLocalWebSDKOption, global: true) != null; final bool useLocalCanvasKit = !useCdn || useLocalWebSdk; - final String? defaultFlavor = FlutterProject.current().manifest.defaultFlavor; + + final String? defaultFlavor = project.manifest.defaultFlavor; final String? cliFlavor = argParser.options.containsKey('flavor') ? stringArg('flavor') : null; final String? flavor = cliFlavor ?? defaultFlavor; if (flavor != null) { @@ -1326,7 +1335,7 @@ abstract class FlutterCommand extends Command { bundleSkSLPath: bundleSkSLPath, dartExperiments: experiments, performanceMeasurementFile: performanceMeasurementFile, - packagesPath: packagesPath ?? globals.fs.path.absolute('.dart_tool', 'package_config.json'), + packageConfigPath: packagesPath ?? packageConfigFile.path, nullSafetyMode: nullSafetyMode, codeSizeDirectory: codeSizeDirectory, androidGradleDaemon: androidGradleDaemon, diff --git a/packages/flutter_tools/lib/src/test/flutter_tester_device.dart b/packages/flutter_tools/lib/src/test/flutter_tester_device.dart index c3b208bb78..e019556ee6 100644 --- a/packages/flutter_tools/lib/src/test/flutter_tester_device.dart +++ b/packages/flutter_tools/lib/src/test/flutter_tester_device.dart @@ -121,7 +121,7 @@ class FlutterTesterTestDevice extends TestDevice { '--non-interactive', '--use-test-fonts', '--disable-asset-fonts', - '--packages=${debuggingOptions.buildInfo.packagesPath}', + '--packages=${debuggingOptions.buildInfo.packageConfigPath}', if (testAssetDirectory != null) '--flutter-assets-dir=$testAssetDirectory', if (debuggingOptions.nullAssertions) diff --git a/packages/flutter_tools/lib/src/test/runner.dart b/packages/flutter_tools/lib/src/test/runner.dart index b9ad2f30b4..38b07e7c2f 100644 --- a/packages/flutter_tools/lib/src/test/runner.dart +++ b/packages/flutter_tools/lib/src/test/runner.dart @@ -801,7 +801,7 @@ class SpawnPlugin extends PlatformPlugin { '--non-interactive', '--use-test-fonts', '--disable-asset-fonts', - '--packages=${debuggingOptions.buildInfo.packagesPath}', + '--packages=${debuggingOptions.buildInfo.packageConfigPath}', if (testAssetDirectory != null) '--flutter-assets-dir=$testAssetDirectory', if (debuggingOptions.nullAssertions) diff --git a/packages/flutter_tools/lib/src/test/test_compiler.dart b/packages/flutter_tools/lib/src/test/test_compiler.dart index 77bad4636d..9c09ba92c4 100644 --- a/packages/flutter_tools/lib/src/test/test_compiler.dart +++ b/packages/flutter_tools/lib/src/test/test_compiler.dart @@ -122,7 +122,7 @@ class TestCompiler { trackWidgetCreation: buildInfo.trackWidgetCreation, initializeFromDill: testFilePath, dartDefines: buildInfo.dartDefines, - packagesPath: buildInfo.packagesPath, + packagesPath: buildInfo.packageConfigPath, frontendServerStarterPath: buildInfo.frontendServerStarterPath, extraFrontEndOptions: buildInfo.extraFrontEndOptions, platform: globals.platform, diff --git a/packages/flutter_tools/lib/src/test/web_test_compiler.dart b/packages/flutter_tools/lib/src/test/web_test_compiler.dart index 04ec506cba..88511a3441 100644 --- a/packages/flutter_tools/lib/src/test/web_test_compiler.dart +++ b/packages/flutter_tools/lib/src/test/web_test_compiler.dart @@ -174,7 +174,7 @@ class WebTestCompiler { platformDill: _fileSystem.file(platformDillPath).absolute.uri.toString(), dartDefines: dartDefines, librariesSpec: _artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).uri.toString(), - packagesPath: buildInfo.packagesPath, + packagesPath: buildInfo.packageConfigPath, artifacts: _artifacts, processManager: _processManager, logger: _logger, diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index fee54df958..8c895e4aed 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -166,7 +166,7 @@ class FlutterTesterDevice extends Device { '--non-interactive', if (debuggingOptions.enableDartProfiling) '--enable-dart-profiling', - '--packages=${debuggingOptions.buildInfo.packagesPath}', + '--packages=${debuggingOptions.buildInfo.packageConfigPath}', '--flutter-assets-dir=${assetDirectory.path}', if (debuggingOptions.startPaused) '--start-paused', diff --git a/packages/flutter_tools/lib/src/xcode_project.dart b/packages/flutter_tools/lib/src/xcode_project.dart index 5c94afc631..bdfb3d89b5 100644 --- a/packages/flutter_tools/lib/src/xcode_project.dart +++ b/packages/flutter_tools/lib/src/xcode_project.dart @@ -585,7 +585,7 @@ class IosProject extends XcodeBasedProject { if (globals.cache.isOlderThanToolsStamp(generatedXcodePropertiesFile)) { await xcode.updateGeneratedXcodeProperties( project: parent, - buildInfo: BuildInfo.debug, + buildInfo: BuildInfo.dummy, targetOverride: bundle.defaultMainPath, ); } @@ -757,7 +757,7 @@ class MacOSProject extends XcodeBasedProject { if (globals.cache.isOlderThanToolsStamp(generatedXcodePropertiesFile)) { await xcode.updateGeneratedXcodeProperties( project: parent, - buildInfo: BuildInfo.debug, + buildInfo: BuildInfo.dummy, useMacOSConfig: true, ); } diff --git a/packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart index 10eccc6ab6..bbbbff53cb 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart @@ -84,7 +84,7 @@ void main() { fileSystem.directory('/test').createSync(); final FlutterWebPlatform webPlatform = await FlutterWebPlatform.start( 'ProjectRoot', - buildInfo: const BuildInfo(BuildMode.debug, '', treeShakeIcons: false), + buildInfo: BuildInfo.debug, webMemoryFS: WebMemoryFS(), fileSystem: fileSystem, buildDirectory: fileSystem.directory('build'), @@ -131,6 +131,7 @@ void main() { buildInfo: const BuildInfo( BuildMode.debug, '', + packageConfigPath: '.dart_tool/package_config.json', treeShakeIcons: false, extraFrontEndOptions: ['--dartdevc-module-format=ddc'], ), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart index 19aa4a542d..5069023b60 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart @@ -1475,8 +1475,8 @@ class TestRunCommandForUsageValues extends RunCommand { } @override - Future getBuildInfo({ BuildMode? forcedBuildMode, File? forcedTargetFile }) async { - return const BuildInfo(BuildMode.debug, null, treeShakeIcons: false); + Future getBuildInfo({FlutterProject? project, BuildMode? forcedBuildMode, File? forcedTargetFile}) async { + return const BuildInfo(BuildMode.debug, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); } } diff --git a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart index 5fe91fe5df..fd531327c1 100644 --- a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart @@ -119,6 +119,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -241,6 +242,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -319,6 +321,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -430,6 +433,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -539,6 +543,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -627,6 +632,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -750,6 +756,7 @@ void main() { null, treeShakeIcons: false, codeSizeDirectory: 'foo', + packageConfigPath: '.dart_tool/package_config.json', ), targetArchs: [AndroidArch.arm64_v8a], ), @@ -828,6 +835,7 @@ void main() { BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -897,7 +905,11 @@ android { processManager: processManager, processUtils: ProcessUtils(processManager: processManager, logger: logger), userMessages: UserMessages(), - buildInfo: const BuildInfo(BuildMode.debug, null, treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.debug, null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), ); expect(androidApk?.id, 'com.example.foo'); @@ -1071,7 +1083,14 @@ Gradle Crashed fileSystem.directory('build/outputs/repo').createSync(recursive: true); await builder.buildGradleAar( - androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + androidBuildInfo: const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1150,7 +1169,14 @@ Gradle Crashed fileSystem.directory('build/outputs/repo').createSync(recursive: true); await builder.buildGradleAar( - androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + androidBuildInfo: const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1211,7 +1237,14 @@ Gradle Crashed await expectLater(() async => builder.buildGradleAar( - androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + androidBuildInfo: const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1294,6 +1327,7 @@ Gradle Crashed BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -1379,6 +1413,7 @@ Gradle Crashed BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -1464,6 +1499,7 @@ Gradle Crashed BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -1550,6 +1586,7 @@ Gradle Crashed BuildMode.release, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -1616,6 +1653,7 @@ Gradle Crashed null, treeShakeIcons: false, androidGradleDaemon: false, + packageConfigPath: '.dart_tool/package_config.json', ), ), target: 'lib/main.dart', @@ -1702,7 +1740,14 @@ Gradle Crashed fileSystem.directory('build/outputs/repo').createSync(recursive: true); await builder.buildGradleAar( - androidBuildInfo: const AndroidBuildInfo(BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + androidBuildInfo: const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1792,7 +1837,13 @@ Gradle Crashed await builder.buildGradleAar( androidBuildInfo: const AndroidBuildInfo( - BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1882,7 +1933,13 @@ Gradle Crashed await builder.buildGradleAar( androidBuildInfo: const AndroidBuildInfo( - BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', @@ -1972,7 +2029,13 @@ Gradle Crashed await builder.buildGradleAar( androidBuildInfo: const AndroidBuildInfo( - BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ) + ), project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory), outputDirectory: fileSystem.directory('build/'), target: '', diff --git a/packages/flutter_tools/test/general.shard/android/build_validation_test.dart b/packages/flutter_tools/test/general.shard/android/build_validation_test.dart index 886662379f..bb217f46c2 100644 --- a/packages/flutter_tools/test/general.shard/android/build_validation_test.dart +++ b/packages/flutter_tools/test/general.shard/android/build_validation_test.dart @@ -30,7 +30,13 @@ void main() { expect(() => validateBuild( const AndroidBuildInfo( // Invalid number - BuildInfo(BuildMode.debug, '', treeShakeIcons: false, buildNumber: 'a'), + BuildInfo( + BuildMode.debug, + '', + treeShakeIcons: false, + buildNumber: 'a', + packageConfigPath: '.dart_tool/package_config.json', + ), targetArchs: [AndroidArch.x86], ), ), throwsToolExit(message: 'buildNumber: a was not a valid integer value.')); @@ -38,7 +44,13 @@ void main() { expect(() => validateBuild( const AndroidBuildInfo( // Negative number - BuildInfo(BuildMode.debug, '', treeShakeIcons: false, buildNumber: '-1'), + BuildInfo( + BuildMode.debug, + '', + treeShakeIcons: false, + buildNumber: '-1', + packageConfigPath: '.dart_tool/package_config.json', + ), targetArchs: [AndroidArch.x86], ), ), throwsToolExit(message: 'buildNumber: -1 must be a positive integer value.')); @@ -46,7 +58,13 @@ void main() { expect(() => validateBuild( const AndroidBuildInfo( // bigger than maximum supported play store value - BuildInfo(BuildMode.debug, '', treeShakeIcons: false, buildNumber: '2100000001'), + BuildInfo( + BuildMode.debug, + '', + treeShakeIcons: false, + buildNumber: '2100000001', + packageConfigPath: '.dart_tool/package_config.json', + ), targetArchs: [AndroidArch.x86], ), ), throwsToolExit(message: 'buildNumber: 2100000001 is greater than the maximum ' @@ -56,7 +74,13 @@ void main() { testWithoutContext('validateBuild does not throw on positive number', () { expect(() => validateBuild( const AndroidBuildInfo( - BuildInfo(BuildMode.debug, '', treeShakeIcons: false, buildNumber: '2'), + BuildInfo( + BuildMode.debug, + '', + treeShakeIcons: false, + buildNumber: '2', + packageConfigPath: '.dart_tool/package_config.json', + ), targetArchs: [AndroidArch.x86], ), ), returnsNormally); diff --git a/packages/flutter_tools/test/general.shard/android/gradle_find_bundle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_find_bundle_test.dart index caa61386d4..5b2a18db22 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_find_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_find_bundle_test.dart @@ -30,7 +30,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooBarRelease', 'app-foo-bar-release.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'fooBar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'fooBar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -44,7 +49,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -58,7 +68,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -72,7 +87,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooRelease', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'foo', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'foo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -86,7 +106,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooaRelease', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'fooA', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'fooA', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -100,7 +125,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('release', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, null, treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -114,7 +144,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooBarDebug', 'app-foo-bar-debug.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'fooBar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'fooBar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -128,7 +163,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barDebug', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -142,7 +182,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barDebug', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -156,7 +201,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooDebug', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'foo', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'foo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -170,7 +220,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooaDebug', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'fooA', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'fooA', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -198,7 +253,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooBarProfile', 'app-foo-bar-profile.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, 'fooBar', treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + 'fooBar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -212,7 +272,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barProfile', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -226,7 +291,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barProfile', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, 'foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + 'foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -239,12 +309,17 @@ void main() { testWithoutContext("Finds app bundle when flavor doesn't contain underscores in profile mode", () { final FlutterProject project = generateFakeAppBundle('fooProfile', 'app.aab', fileSystem); final File bundle = findBundleFile( - project, - const BuildInfo(BuildMode.profile, 'foo', treeShakeIcons: false), - BufferLogger.test(), - TestUsage(), - fakeAnalytics, - ); + project, + const BuildInfo( + BuildMode.profile, + 'foo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), + BufferLogger.test(), + TestUsage(), + fakeAnalytics, + ); expect(bundle, isNotNull); expect(bundle.path, '/build/app/outputs/bundle/fooProfile/app.aab'); @@ -254,7 +329,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('fooaProfile', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, 'fooA', treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + 'fooA', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -268,7 +348,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('profile', 'app.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, null, treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -282,7 +367,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('release', 'app-release.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, null, treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -296,7 +386,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('profile', 'app-profile.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, null, treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -324,7 +419,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app-foo_bar-release.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -338,7 +438,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barRelease', 'app-foo_bar-release.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -352,10 +457,15 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barProfile', 'app-foo_bar-profile.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.profile, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.profile, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), - TestUsage(), - fakeAnalytics, + TestUsage(), + fakeAnalytics, ); expect(bundle, isNotNull); @@ -366,7 +476,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_barDebug', 'app-foo_bar-debug.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -381,7 +496,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_BarRelease', 'app-foo_Bar-release.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.release, 'Foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.release, + 'Foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -396,7 +516,12 @@ void main() { final FlutterProject project = generateFakeAppBundle('foo_BarDebug', 'app-foo_Bar-debug.aab', fileSystem); final File bundle = findBundleFile( project, - const BuildInfo(BuildMode.debug, 'Foo_Bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'Foo_Bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), TestUsage(), fakeAnalytics, @@ -413,7 +538,12 @@ void main() { () { findBundleFile( project, - const BuildInfo(BuildMode.debug, 'foo_bar', treeShakeIcons: false), + const BuildInfo( + BuildMode.debug, + 'foo_bar', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), BufferLogger.test(), testUsage, fakeAnalytics, @@ -422,9 +552,7 @@ void main() { throwsToolExit( message: "Gradle build failed to produce an .aab file. It's likely that this file " - "was generated under ${project.android.buildDirectory.path}, but the tool couldn't find it." - ) - ); + "was generated under ${project.android.buildDirectory.path}, but the tool couldn't find it.")); expect(testUsage.events, contains( TestUsageEvent( 'build', diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart index c6c713c261..41bae583f1 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart @@ -88,11 +88,21 @@ void main() { group('gradle tasks', () { testWithoutContext('assemble release', () { expect( - getAssembleTaskFor(const BuildInfo(BuildMode.release, null, treeShakeIcons: false)), + getAssembleTaskFor(const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), equals('assembleRelease'), ); expect( - getAssembleTaskFor(const BuildInfo(BuildMode.release, 'flavorFoo', treeShakeIcons: false)), + getAssembleTaskFor(const BuildInfo( + BuildMode.release, + 'flavorFoo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), equals('assembleFlavorFooRelease'), ); }); @@ -103,18 +113,33 @@ void main() { equals('assembleDebug'), ); expect( - getAssembleTaskFor(const BuildInfo(BuildMode.debug, 'flavorFoo', treeShakeIcons: false)), + getAssembleTaskFor(const BuildInfo( + BuildMode.debug, + 'flavorFoo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), equals('assembleFlavorFooDebug'), ); }); testWithoutContext('assemble profile', () { expect( - getAssembleTaskFor(const BuildInfo(BuildMode.profile, null, treeShakeIcons: false)), + getAssembleTaskFor(const BuildInfo( + BuildMode.profile, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), equals('assembleProfile'), ); expect( - getAssembleTaskFor(const BuildInfo(BuildMode.profile, 'flavorFoo', treeShakeIcons: false)), + getAssembleTaskFor(const BuildInfo( + BuildMode.profile, + 'flavorFoo', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), equals('assembleFlavorFooProfile'), ); }); @@ -123,21 +148,36 @@ void main() { group('listApkPaths', () { testWithoutContext('Finds APK without flavor in debug', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.debug, '', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo( + BuildMode.debug, + '', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); expect(apks, ['app-debug.apk']); }); testWithoutContext('Finds APK with flavor in debug', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.debug, 'flavor1', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo( + BuildMode.debug, + 'flavor1', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); expect(apks, ['app-flavor1-debug.apk']); }); testWithoutContext('Finds APK without flavor in release', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, '', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo( + BuildMode.release, + '', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); expect(apks, ['app-release.apk']); @@ -145,7 +185,12 @@ void main() { testWithoutContext('Finds APK with flavor in release mode', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavor1', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo( + BuildMode.release, + 'flavor1', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); expect(apks, ['app-flavor1-release.apk']); @@ -153,7 +198,8 @@ void main() { testWithoutContext('Finds APK with flavor in release mode', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavorA', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavorA', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json',)), ); expect(apks, ['app-flavora-release.apk']); @@ -161,15 +207,26 @@ void main() { testWithoutContext('Finds APK with flavor in release mode - AGP v3', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavor1', treeShakeIcons: false)), + const AndroidBuildInfo(BuildInfo( + BuildMode.release, + 'flavor1', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); - expect(apks, ['app-flavor1-release.apk']); }); testWithoutContext('Finds APK with split-per-abi', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavor1', treeShakeIcons: false), splitPerAbi: true), + const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + 'flavor1', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), + splitPerAbi: true), ); expect(apks, unorderedEquals([ @@ -181,7 +238,14 @@ void main() { testWithoutContext('Finds APK with split-per-abi when flavor contains uppercase letters', () { final Iterable apks = listApkPaths( - const AndroidBuildInfo(BuildInfo(BuildMode.release, 'flavorA', treeShakeIcons: false), splitPerAbi: true), + const AndroidBuildInfo( + BuildInfo( + BuildMode.release, + 'flavorA', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), + splitPerAbi: true), ); expect(apks, unorderedEquals([ @@ -262,7 +326,12 @@ dependencies: flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -280,7 +349,12 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -297,7 +371,13 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + buildName: '1.0.2', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -315,7 +395,13 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + buildNumber: '3', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -333,7 +419,14 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + buildName: '1.0.2', + buildNumber: '3', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -351,7 +444,14 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + buildName: '1.0.2', + buildNumber: '3', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -368,7 +468,14 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + buildName: '1.0.2', + buildNumber: '3', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); await checkBuildVersion( manifest: manifest, buildInfo: buildInfo, @@ -387,17 +494,36 @@ flutter: '''; await checkBuildVersion( manifest: manifest, - buildInfo: const BuildInfo(BuildMode.release, null, treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), ); await checkBuildVersion( manifest: manifest, - buildInfo: const BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.release, + null, + buildName: '1.0.2', + buildNumber: '3', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), expectedBuildName: '1.0.2', expectedBuildNumber: '3', ); await checkBuildVersion( manifest: manifest, - buildInfo: const BuildInfo(BuildMode.release, null, buildName: '1.0.3', buildNumber: '4', treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.release, + null, + buildName: '1.0.3', + buildNumber: '4', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), expectedBuildName: '1.0.3', expectedBuildNumber: '4', ); @@ -410,7 +536,12 @@ flutter: // Values get unset. await checkBuildVersion( manifest: manifest, - buildInfo: const BuildInfo(BuildMode.release, null, treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), ); }); }); diff --git a/packages/flutter_tools/test/general.shard/application_package_test.dart b/packages/flutter_tools/test/general.shard/application_package_test.dart index e7e04cdfc6..9989502a04 100644 --- a/packages/flutter_tools/test/general.shard/application_package_test.dart +++ b/packages/flutter_tools/test/general.shard/application_package_test.dart @@ -113,11 +113,16 @@ void main() { project.android, androidSdk: sdk, processManager: fakeProcessManager, - userMessages: UserMessages(), + userMessages: UserMessages(), processUtils: ProcessUtils(processManager: fakeProcessManager, logger: logger), logger: logger, fileSystem: fs, - buildInfo: const BuildInfo(BuildMode.debug, null, treeShakeIcons: false), + buildInfo: const BuildInfo( + BuildMode.debug, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), ); expect(androidApk, isNotNull); }, overrides: overrides); diff --git a/packages/flutter_tools/test/general.shard/build_info_test.dart b/packages/flutter_tools/test/general.shard/build_info_test.dart index 0ef3c35945..afb04036d3 100644 --- a/packages/flutter_tools/test/general.shard/build_info_test.dart +++ b/packages/flutter_tools/test/general.shard/build_info_test.dart @@ -179,7 +179,7 @@ void main() { extraFrontEndOptions: ['--enable-experiment=non-nullable', 'bar'], extraGenSnapshotOptions: ['--enable-experiment=non-nullable', 'fizz'], bundleSkSLPath: 'foo/bar/baz.sksl.json', - packagesPath: 'foo/.dart_tool/package_config.json', + packageConfigPath: 'foo/.dart_tool/package_config.json', codeSizeDirectory: 'foo/code-size', fileSystemRoots: ['test5', 'test6'], fileSystemScheme: 'scheme', @@ -217,7 +217,7 @@ void main() { extraFrontEndOptions: ['--enable-experiment=non-nullable', 'bar'], extraGenSnapshotOptions: ['--enable-experiment=non-nullable', 'fizz'], bundleSkSLPath: 'foo/bar/baz.sksl.json', - packagesPath: 'foo/.dart_tool/package_config.json', + packageConfigPath: 'foo/.dart_tool/package_config.json', codeSizeDirectory: 'foo/code-size', // These values are ignored by toEnvironmentConfig androidProjectArgs: ['foo=bar', 'fizz=bazz'], @@ -250,7 +250,7 @@ void main() { extraFrontEndOptions: ['--enable-experiment=non-nullable', 'bar'], extraGenSnapshotOptions: ['--enable-experiment=non-nullable', 'fizz'], bundleSkSLPath: 'foo/bar/baz.sksl.json', - packagesPath: 'foo/.dart_tool/package_config.json', + packageConfigPath: 'foo/.dart_tool/package_config.json', codeSizeDirectory: 'foo/code-size', androidProjectArgs: ['foo=bar', 'fizz=bazz'] ); diff --git a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart index a3d4c1a915..53dac1a0b1 100644 --- a/packages/flutter_tools/test/general.shard/bundle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/bundle_builder_test.dart @@ -175,6 +175,7 @@ void main() { fileSystemScheme: 'test7', dartDefines: ['test8', 'test9'], treeShakeIcons: true, + packageConfigPath: '.dart_tool/package_config.json', ), project: project, mainPath: mainPath, diff --git a/packages/flutter_tools/test/general.shard/cmake_test.dart b/packages/flutter_tools/test/general.shard/cmake_test.dart index 861a2e4484..22fb82c523 100644 --- a/packages/flutter_tools/test/general.shard/cmake_test.dart +++ b/packages/flutter_tools/test/general.shard/cmake_test.dart @@ -49,7 +49,12 @@ void main() { testWithoutContext('generates config', () async { final FlutterProject project = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); final CmakeBasedProject cmakeProject = _FakeProject.fromFlutter(project); - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); final Map environment = {}; writeGeneratedCmakeConfig( @@ -90,7 +95,12 @@ void main() { final FlutterProject project = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); final CmakeBasedProject cmakeProject = _FakeProject.fromFlutter(project); - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); final Map environment = { 'TEST': r'hello\world', @@ -137,7 +147,12 @@ void main() { final FlutterProject project = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); final CmakeBasedProject cmakeProject = _FakeProject.fromFlutter(project); - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ); final Map environment = {}; writeGeneratedCmakeConfig( @@ -171,6 +186,7 @@ void main() { null, buildName: '1.2.3', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -205,6 +221,7 @@ void main() { null, buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -240,6 +257,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -278,6 +296,7 @@ void main() { null, buildName: '1.2.3', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -316,6 +335,7 @@ void main() { null, buildNumber: '5', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -355,6 +375,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -389,6 +410,7 @@ void main() { null, buildName: 'hello.world', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -426,6 +448,7 @@ void main() { buildName: '1.2.3', buildNumber: 'foo_bar', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -463,6 +486,7 @@ void main() { buildName: '1.2.3', buildNumber: 'hello', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -500,6 +524,7 @@ void main() { buildName: '1.2.3', buildNumber: '4.5', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -537,6 +562,7 @@ void main() { buildName: '1.2.3', buildNumber: 'hello', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; @@ -578,6 +604,7 @@ void main() { buildName: '1.2.3', buildNumber: '4.5', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final Map environment = {}; 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..04dac56962 100644 --- a/packages/flutter_tools/test/general.shard/commands/build_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/build_test.dart @@ -104,6 +104,7 @@ void main() { '', nullSafetyMode: NullSafetyMode.unsound, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); final BufferLogger logger = BufferLogger.test(); diff --git a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart index f2c4260a7d..adf6c44037 100644 --- a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart @@ -266,6 +266,7 @@ class TestFlutterTesterDevice extends FlutterTesterTestDevice { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), hostVmServicePort: 1234, dartEntrypointArgs: dartEntrypointArgs, diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart index eb1cb5780c..e9e24d7b4d 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart @@ -137,8 +137,12 @@ void main() { .fuchsia); } - final DebuggingOptions debuggingOptions = DebuggingOptions.disabled( - BuildInfo(mode, null, treeShakeIcons: false)); + final DebuggingOptions debuggingOptions = DebuggingOptions.disabled(BuildInfo( + mode, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )); return device.startApp( app!, prebuiltApplication: prebuilt, @@ -189,8 +193,12 @@ void main() { final File far = globals.fs.file('app_name-0.far')..createSync(); final FuchsiaApp app = FuchsiaApp.fromPrebuiltApp(far)!; - final DebuggingOptions debuggingOptions = DebuggingOptions.disabled( - const BuildInfo(BuildMode.release, null, treeShakeIcons: false)); + final DebuggingOptions debuggingOptions = DebuggingOptions.disabled(const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )); final LaunchResult launchResult = await device.startApp(app, prebuiltApplication: true, debuggingOptions: debuggingOptions); expect(launchResult.started, isFalse); @@ -215,8 +223,12 @@ void main() { final File far = globals.fs.file('app_name-0.far')..createSync(); final FuchsiaApp app = FuchsiaApp.fromPrebuiltApp(far)!; - final DebuggingOptions debuggingOptions = DebuggingOptions.disabled( - const BuildInfo(BuildMode.release, null, treeShakeIcons: false)); + final DebuggingOptions debuggingOptions = DebuggingOptions.disabled(const BuildInfo( + BuildMode.release, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )); final LaunchResult launchResult = await device.startApp(app, prebuiltApplication: true, debuggingOptions: debuggingOptions); expect(launchResult.started, isTrue); diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_kernel_compiler_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_kernel_compiler_test.dart index b9f3ea2ea1..6e4dafcebb 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_kernel_compiler_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_kernel_compiler_test.dart @@ -36,14 +36,15 @@ void main() { test('provide correct flags for custom dart define', () { expect( - FuchsiaKernelCompiler.getBuildInfoFlags( - buildInfo: const BuildInfo( - BuildMode.debug, - null, - treeShakeIcons: true, - dartDefines: ['abc=efg'], - ), - manifestPath: ''), + FuchsiaKernelCompiler.getBuildInfoFlags( + buildInfo: const BuildInfo( + BuildMode.debug, + null, + treeShakeIcons: true, + dartDefines: ['abc=efg'], + packageConfigPath: '.dart_tool/package_config.json', + ), + manifestPath: ''), allOf([ contains('-Dabc=efg'), ])); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart index 1eb72b6eee..fb9428b291 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart @@ -518,6 +518,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ); @@ -592,6 +593,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ); @@ -659,6 +661,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ); @@ -710,6 +713,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ); @@ -748,6 +752,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ); @@ -797,6 +802,7 @@ void main() { buildName: '1.2.3', buildNumber: '4', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', )), platformArgs: {}, ), throwsToolExit()); diff --git a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart index f19adbde8b..1a9d5eec3f 100644 --- a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart @@ -1097,7 +1097,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' applicationPackage: mockDir, ); - const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false); + const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); final DebuggingOptions mockOptions = DebuggingOptions.disabled(mockInfo); await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions); @@ -1125,7 +1125,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' applicationPackage: mockDir, ); - const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false); + const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); final DebuggingOptions mockOptions = DebuggingOptions.disabled(mockInfo); final LaunchResult result = await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions); @@ -1157,7 +1157,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' applicationPackage: mockDir, ); - const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false); + const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); final DebuggingOptions mockOptions = DebuggingOptions.enabled( mockInfo, enableSoftwareRendering: true, @@ -1229,7 +1229,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' applicationPackage: mockDir, ); - const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false); + const BuildInfo mockInfo = BuildInfo(BuildMode.debug, 'flavor', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); final DebuggingOptions mockOptions = DebuggingOptions.enabled(mockInfo, enableSoftwareRendering: true); await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions, route: '/animation'); diff --git a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart index fa40af78e2..7563ab77d4 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart @@ -634,15 +634,15 @@ Information about project "Runner": }); testWithoutContext('expected scheme for flavored build is the title-cased flavor', () { - expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.debug, 'hello', treeShakeIcons: false)), 'Hello'); - expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.profile, 'HELLO', treeShakeIcons: false)), 'HELLO'); - expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.release, 'Hello', treeShakeIcons: false)), 'Hello'); + expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.debug, 'hello', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'Hello'); + expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.profile, 'HELLO', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'HELLO'); + expect(XcodeProjectInfo.expectedSchemeFor(const BuildInfo(BuildMode.release, 'Hello', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'Hello'); }); testWithoutContext('expected build configuration for flavored build is Mode-Flavor', () { - expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.debug, 'hello', treeShakeIcons: false), 'Hello'), 'Debug-Hello'); - expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.profile, 'HELLO', treeShakeIcons: false), 'Hello'), 'Profile-Hello'); - expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.release, 'Hello', treeShakeIcons: false), 'Hello'), 'Release-Hello'); + expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.debug, 'hello', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Hello'), 'Debug-Hello'); + expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.profile, 'HELLO', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Hello'), 'Profile-Hello'); + expect(XcodeProjectInfo.expectedBuildConfigurationFor(const BuildInfo(BuildMode.release, 'Hello', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Hello'), 'Release-Hello'); }); testWithoutContext('scheme for default project is Runner', () { @@ -651,7 +651,7 @@ Information about project "Runner": expect(info.schemeFor(BuildInfo.debug), 'Runner'); expect(info.schemeFor(BuildInfo.profile), 'Runner'); expect(info.schemeFor(BuildInfo.release), 'Runner'); - expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'unknown', treeShakeIcons: false)), isNull); + expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'unknown', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), isNull); }); testWithoutContext('build configuration for default project is matched against BuildMode', () { @@ -670,11 +670,11 @@ Information about project "Runner": logger, ); - expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false)), 'Free'); - expect(info.schemeFor(const BuildInfo(BuildMode.profile, 'Free', treeShakeIcons: false)), 'Free'); - expect(info.schemeFor(const BuildInfo(BuildMode.release, 'paid', treeShakeIcons: false)), 'Paid'); + expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'Free'); + expect(info.schemeFor(const BuildInfo(BuildMode.profile, 'Free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'Free'); + expect(info.schemeFor(const BuildInfo(BuildMode.release, 'paid', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), 'Paid'); expect(info.schemeFor(BuildInfo.debug), isNull); - expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'unknown', treeShakeIcons: false)), isNull); + expect(info.schemeFor(const BuildInfo(BuildMode.debug, 'unknown', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json')), isNull); }); testWithoutContext('reports default scheme error and exit', () { @@ -717,10 +717,10 @@ Information about project "Runner": logger, ); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false), 'Free'), 'debug (free)'); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'Paid', treeShakeIcons: false), 'Paid'), 'Debug paid'); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.profile, 'FREE', treeShakeIcons: false), 'Free'), 'profile - Free'); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.release, 'paid', treeShakeIcons: false), 'Paid'), 'Release-Paid'); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Free'), 'debug (free)'); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'Paid', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Paid'), 'Debug paid'); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.profile, 'FREE', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Free'), 'profile - Free'); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.release, 'paid', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Paid'), 'Release-Paid'); }); testWithoutContext('build configuration for project with inconsistent naming is null', () { @@ -730,9 +730,9 @@ Information about project "Runner": ['Free', 'Paid'], logger, ); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'Free', treeShakeIcons: false), 'Free'), null); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.profile, 'Free', treeShakeIcons: false), 'Free'), null); - expect(info.buildConfigurationFor(const BuildInfo(BuildMode.release, 'Paid', treeShakeIcons: false), 'Paid'), null); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.debug, 'Free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Free'), null); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.profile, 'Free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Free'), null); + expect(info.buildConfigurationFor(const BuildInfo(BuildMode.release, 'Paid', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), 'Paid'), null); }); group('environmentVariablesAsXcodeBuildSettings', () { late FakePlatform platform; @@ -1048,7 +1048,7 @@ Build settings for action build and target plugin2: }); testUsingOsxContext('does not set TRACK_WIDGET_CREATION when trackWidgetCreation is false', () async { - const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); final FlutterProject project = FlutterProject.fromDirectoryTest(fs.directory('path/to/project')); await updateGeneratedXcodeProperties( project: project, @@ -1162,7 +1162,7 @@ dependencies: flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1180,7 +1180,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1198,7 +1198,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1216,7 +1216,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1234,7 +1234,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildNumber: '3', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1252,7 +1252,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1270,7 +1270,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1287,7 +1287,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: '3', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, @@ -1304,7 +1304,7 @@ dependencies: sdk: flutter flutter: '''; - const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.release, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await checkBuildVersion( manifestString: manifest, buildInfo: buildInfo, diff --git a/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart index 8c26128073..3e643ad5d8 100644 --- a/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/isolated/resident_runner_test.dart @@ -69,6 +69,7 @@ void main() { '', treeShakeIcons: false, trackWidgetCreation: true, + packageConfigPath: '.dart_tool/package_config.json' )), target: 'main.dart', devtoolsHandler: createNoOpHandler, diff --git a/packages/flutter_tools/test/general.shard/macos/application_package_test.dart b/packages/flutter_tools/test/general.shard/macos/application_package_test.dart index 1edfa137af..2df4e1e78f 100644 --- a/packages/flutter_tools/test/general.shard/macos/application_package_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/application_package_test.dart @@ -161,11 +161,11 @@ group('PrebuiltMacOSApp', () { final MacOSProject project = FlutterProject.fromDirectory(globals.fs.currentDirectory).macos; final BuildableMacOSApp macosApp = MacOSApp.fromMacOSProject(project) as BuildableMacOSApp; - const BuildInfo vanillaApp = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); + const BuildInfo vanillaApp = BuildInfo(BuildMode.debug, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); String? applicationBundle = macosApp.bundleDirectory(vanillaApp); expect(applicationBundle, 'Debug'); - const BuildInfo flavoredApp = BuildInfo(BuildMode.release, 'flavor', treeShakeIcons: false); + const BuildInfo flavoredApp = BuildInfo(BuildMode.release, 'flavor', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); applicationBundle = macosApp.bundleDirectory(flavoredApp); expect(applicationBundle, 'Release-flavor'); diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index 79de85b257..ab404fb616 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -1109,7 +1109,7 @@ plugins { IosProject.kProductBundleIdKey: 'io.flutter.someProject', }; xcodeProjectInterpreter.xcodeProjectInfo = XcodeProjectInfo([], [], ['Free'], logger); - const BuildInfo buildInfo = BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); expect(await project.ios.productBundleIdentifier(buildInfo), 'io.flutter.someProject'); }); @@ -1118,7 +1118,7 @@ plugins { final FlutterProject project = await someProject(); project.ios.xcodeProject.createSync(); xcodeProjectInterpreter.xcodeProjectInfo = XcodeProjectInfo([], [], ['Runner'], logger); - const BuildInfo buildInfo = BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false); + const BuildInfo buildInfo = BuildInfo(BuildMode.debug, 'free', treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'); await expectToolExitLater( project.ios.productBundleIdentifier(buildInfo), diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart index 75353ab658..7c1a8b899e 100644 --- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart @@ -437,6 +437,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, extraFrontEndOptions: [ '--enable-experiment=non-nullable', ], + packageConfigPath: '.dart_tool/package_config.json' )), devtoolsHandler: createNoOpHandler, analytics: fakeAnalytics, @@ -1592,6 +1593,7 @@ flutter: BuildMode.debug, null, treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ) ), target: 'main.dart', @@ -1622,6 +1624,7 @@ flutter: '', treeShakeIcons: false, dartDefines: ['a', 'b'], + packageConfigPath: '.dart_tool/package_config.json', ) ), target: 'main.dart', @@ -1652,7 +1655,8 @@ flutter: BuildMode.debug, '', treeShakeIcons: false, - extraFrontEndOptions: ['--enable-experiment=non-nullable'] + extraFrontEndOptions: ['--enable-experiment=non-nullable'], + packageConfigPath: '.dart_tool/package_config.json', ) ), target: 'main.dart', @@ -1731,6 +1735,7 @@ flutter: '', treeShakeIcons: false, trackWidgetCreation: true, + packageConfigPath: '.dart_tool/package_config.json', )), target: 'main.dart', devtoolsHandler: createNoOpHandler, @@ -1820,6 +1825,7 @@ flutter: '', treeShakeIcons: false, nullSafetyMode: NullSafetyMode.unsound, + packageConfigPath: '.dart_tool/package_config.json', ), target: null, platform: FakePlatform(), @@ -1851,6 +1857,7 @@ flutter: '', treeShakeIcons: false, extraFrontEndOptions: ['--enable-experiment=non-nullable'], + packageConfigPath: '.dart_tool/package_config.json', ), target: null, platform: FakePlatform(), @@ -1883,6 +1890,7 @@ flutter: '', treeShakeIcons: false, extraFrontEndOptions: [], + packageConfigPath: '.dart_tool/package_config.json', ), target: null, platform: FakePlatform(), )).generator as DefaultResidentCompiler?; @@ -1907,6 +1915,7 @@ flutter: treeShakeIcons: false, extraFrontEndOptions: [], initializeFromDill: '/foo/bar.dill', + packageConfigPath: '.dart_tool/package_config.json', ), target: null, platform: FakePlatform(), )).generator as DefaultResidentCompiler?; @@ -1931,6 +1940,7 @@ flutter: treeShakeIcons: false, extraFrontEndOptions: [], assumeInitializeFromDillUpToDate: true, + packageConfigPath: '.dart_tool/package_config.json' ), target: null, platform: FakePlatform(), )).generator as DefaultResidentCompiler?; @@ -1953,6 +1963,7 @@ flutter: '', treeShakeIcons: false, frontendServerStarterPath: '/foo/bar/frontend_server_starter.dart', + packageConfigPath: '.dart_tool/package_config.json' ), target: null, platform: FakePlatform(), )).generator as DefaultResidentCompiler?; @@ -2368,6 +2379,7 @@ flutter: '', treeShakeIcons: false, trackWidgetCreation: true, + packageConfigPath: '.dart_tool/package_config.json', )), target: 'main.dart', devtoolsHandler: createNoOpHandler, diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 775e926a1e..34ef199025 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -272,7 +272,7 @@ void main() { testUsingContext('WebRunner copies compiled app.dill to cache during startup', () async { final DebuggingOptions debuggingOptions = DebuggingOptions.enabled( - const BuildInfo(BuildMode.debug, null, treeShakeIcons: false), + const BuildInfo(BuildMode.debug, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json'), ); final ResidentRunner residentWebRunner = setUpResidentRunner(flutterDevice, debuggingOptions: debuggingOptions); diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart index c394e915b5..42470076a2 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart @@ -643,7 +643,7 @@ void main() { testUsingContext('use packagesPath to generate BuildInfo', () async { final DummyFlutterCommand flutterCommand = DummyFlutterCommand(packagesPath: 'foo'); final BuildInfo buildInfo = await flutterCommand.getBuildInfo(forcedBuildMode: BuildMode.debug); - expect(buildInfo.packagesPath, 'foo'); + expect(buildInfo.packageConfigPath, 'foo'); }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => processManager, diff --git a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart index d5cf915032..ba43d15f31 100644 --- a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart @@ -1361,12 +1361,15 @@ TerminalHandler setUpTerminalHandler(List requests, { final ProcessInfo processInfo = ProcessInfo.test(MemoryFileSystem.test()); final FlutterDevice device = FlutterDevice( FakeDevice()..supportsScreenshot = supportsScreenshot, - buildInfo: BuildInfo(buildMode, '', treeShakeIcons: false), + buildInfo: BuildInfo( + buildMode, + '', + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + ), generator: FakeResidentCompiler(), developmentShaderCompiler: const FakeShaderCompiler(), - targetPlatform: web - ? TargetPlatform.web_javascript - : TargetPlatform.android_arm, + targetPlatform: web ? TargetPlatform.web_javascript : TargetPlatform.android_arm, ); device.vmService = FakeVmServiceHost(requests: requests).vmService; final FakeResidentRunner residentRunner = FakeResidentRunner(device, testLogger, localFileSystem) diff --git a/packages/flutter_tools/test/general.shard/test/test_compiler_test.dart b/packages/flutter_tools/test/general.shard/test/test_compiler_test.dart index 58b8f2f3a4..257ad4f999 100644 --- a/packages/flutter_tools/test/general.shard/test/test_compiler_test.dart +++ b/packages/flutter_tools/test/general.shard/test/test_compiler_test.dart @@ -29,7 +29,8 @@ final BuildInfo debugBuild = BuildInfo( treeShakeIcons: false, packageConfig: PackageConfig([ Package('test_api', Uri.parse('file:///test_api/')), - ]) + ]), + packageConfigPath: '.dart_tool/package_config.json', ); void main() { diff --git a/packages/flutter_tools/test/general.shard/test/web_test_compiler_test.dart b/packages/flutter_tools/test/general.shard/test/web_test_compiler_test.dart index af63836241..5f8623a71a 100644 --- a/packages/flutter_tools/test/general.shard/test/web_test_compiler_test.dart +++ b/packages/flutter_tools/test/general.shard/test/web_test_compiler_test.dart @@ -83,6 +83,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ); await compiler.initialize( diff --git a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart index 165075e067..672eb9d03c 100644 --- a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart +++ b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart @@ -159,11 +159,16 @@ Hello! ''', )); - final LaunchResult result = await device.startApp(app, + final LaunchResult result = await device.startApp( + app, mainPath: mainPath, - debuggingOptions: DebuggingOptions.enabled(const BuildInfo(BuildMode.debug, null, treeShakeIcons: false)), + debuggingOptions: DebuggingOptions.enabled(const BuildInfo( + BuildMode.debug, + null, + treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', + )), ); - expect(result.started, isTrue); expect(result.vmServiceUri, vmServiceUri); expect(logLines.last, 'Hello!'); diff --git a/packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart b/packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart index c88c0d46c1..3b40cd8f3c 100644 --- a/packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart @@ -921,6 +921,7 @@ void main() { '', treeShakeIcons: false, nullSafetyMode: NullSafetyMode.unsound, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -1059,6 +1060,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -1198,6 +1200,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: true, enableDds: false, @@ -1319,11 +1322,14 @@ void main() { useSseForInjectedClient: true, nullAssertions: true, nativeNullAssertions: true, - buildInfo: const BuildInfo(BuildMode.debug, '', - treeShakeIcons: false, - dartDefines: [ - 'FLUTTER_WEB_USE_SKIA=true', - ]), + buildInfo: const BuildInfo( + BuildMode.debug, '', + treeShakeIcons: false, + dartDefines: [ + 'FLUTTER_WEB_USE_SKIA=true', + ], + packageConfigPath: '.dart_tool/package_config.json', + ), enableDwds: false, enableDds: false, entrypoint: Uri.base, @@ -1372,11 +1378,14 @@ void main() { useSseForInjectedClient: true, nullAssertions: true, nativeNullAssertions: true, - buildInfo: const BuildInfo(BuildMode.debug, '', - treeShakeIcons: false, - dartDefines: [ - 'FLUTTER_WEB_AUTO_DETECT=true', - ]), + buildInfo: const BuildInfo( + BuildMode.debug, '', + treeShakeIcons: false, + dartDefines: [ + 'FLUTTER_WEB_AUTO_DETECT=true', + ], + packageConfigPath: '.dart_tool/package_config.json', + ), enableDwds: false, enableDds: false, entrypoint: Uri.base, @@ -1475,6 +1484,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), false, false, @@ -1508,6 +1518,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), false, false, diff --git a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart index ea7a1f6592..360ea64a02 100644 --- a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart @@ -752,6 +752,7 @@ void main() { '', treeShakeIcons: false, nullSafetyMode: NullSafetyMode.unsound, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -866,6 +867,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -986,6 +988,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: true, enableDds: false, @@ -1101,7 +1104,8 @@ void main() { treeShakeIcons: false, dartDefines: [ 'FLUTTER_WEB_USE_SKIA=true', - ] + ], + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -1152,7 +1156,8 @@ void main() { treeShakeIcons: false, dartDefines: [ 'FLUTTER_WEB_AUTO_DETECT=true', - ] + ], + packageConfigPath: '.dart_tool/package_config.json', ), enableDwds: false, enableDds: false, @@ -1248,6 +1253,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), false, false, @@ -1282,6 +1288,7 @@ void main() { BuildMode.debug, '', treeShakeIcons: false, + packageConfigPath: '.dart_tool/package_config.json', ), false, false,