only build macOS kernel in debug mode (#37365)
diff --git a/packages/flutter_tools/bin/macos_build_flutter_assets.sh b/packages/flutter_tools/bin/macos_build_flutter_assets.sh index 200357a..63a15ba 100755 --- a/packages/flutter_tools/bin/macos_build_flutter_assets.sh +++ b/packages/flutter_tools/bin/macos_build_flutter_assets.sh
@@ -80,7 +80,7 @@ precache \ --no-android \ --no-ios \ - --macos \ + --macos # TODO(jonahwilliams): support flavors https://github.com/flutter/flutter/issues/32923 RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics \ @@ -90,7 +90,7 @@ assemble \ -dTargetFile="${target_path}" \ -dTargetPlatform=darwin-x64 \ - -dBuildMode="${build_mode}" \ + -dBuildMode=debug \ --build-inputs="${build_inputs_path}" \ --build-outputs="${build_outputs_path}" \ "${build_target}"
diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart index 60be06c..9a70360 100644 --- a/packages/flutter_tools/lib/src/commands/build.dart +++ b/packages/flutter_tools/lib/src/commands/build.dart
@@ -27,7 +27,7 @@ addSubcommand(BuildIOSCommand()); addSubcommand(BuildBundleCommand(verboseHelp: verboseHelp)); addSubcommand(BuildWebCommand()); - addSubcommand(BuildMacosCommand()); + addSubcommand(BuildMacosCommand(verboseHelp: verboseHelp)); addSubcommand(BuildLinuxCommand()); addSubcommand(BuildWindowsCommand()); addSubcommand(BuildFuchsiaCommand(verboseHelp: verboseHelp));
diff --git a/packages/flutter_tools/lib/src/commands/build_macos.dart b/packages/flutter_tools/lib/src/commands/build_macos.dart index dc27a17..4da7b90 100644 --- a/packages/flutter_tools/lib/src/commands/build_macos.dart +++ b/packages/flutter_tools/lib/src/commands/build_macos.dart
@@ -16,20 +16,9 @@ /// A command to build a macOS desktop target through a build shell script. class BuildMacosCommand extends BuildSubCommand { - BuildMacosCommand() { + BuildMacosCommand({bool verboseHelp}) { usesTargetOption(); - argParser.addFlag('debug', - negatable: false, - help: 'Build a debug version of your app.', - ); - argParser.addFlag('profile', - negatable: false, - help: 'Build a version of your app specialized for performance profiling.' - ); - argParser.addFlag('release', - negatable: false, - help: 'Build a version of your app specialized for performance profiling.', - ); + addBuildModeFlags(verboseHelp: verboseHelp); } @override
diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart index a72a8b8..31434a7 100644 --- a/packages/flutter_tools/lib/src/macos/build_macos.dart +++ b/packages/flutter_tools/lib/src/macos/build_macos.dart
@@ -30,9 +30,10 @@ projectDir: flutterProject.directory, buildDir: flutterProject.dartTool.childDirectory('flutter_build'), defines: <String, String>{ - kBuildMode: buildInfo.isDebug == true ? 'debug' : 'release', + // TODO(jonahwilliams): support other build types. + kBuildMode: 'debug', kTargetPlatform: 'darwin-x64', - kTargetFile: fs.file(targetOverride).absolute.path + kTargetFile: targetOverride, }, );
diff --git a/packages/flutter_tools/lib/src/macos/macos_device.dart b/packages/flutter_tools/lib/src/macos/macos_device.dart index bb1130b..d0d6a02 100644 --- a/packages/flutter_tools/lib/src/macos/macos_device.dart +++ b/packages/flutter_tools/lib/src/macos/macos_device.dart
@@ -69,6 +69,8 @@ @override Future<String> get sdkNameAndVersion async => os.name; + String _cachedExecutable; + @override Future<LaunchResult> startApp( covariant MacOSApp package, { @@ -92,6 +94,7 @@ targetOverride: mainPath, ); } + _cachedExecutable = prebuiltMacOSApp.executable; // Ensure that the executable is locatable. if (prebuiltMacOSApp == null) { @@ -127,8 +130,8 @@ // TODO(jonahwilliams): implement using process manager. // currently we rely on killing the isolate taking down the application. @override - Future<bool> stopApp(covariant PrebuiltMacOSApp app) async { - return killProcess(app.executable); + Future<bool> stopApp(covariant MacOSApp app) async { + return killProcess(_cachedExecutable); } @override
diff --git a/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart b/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart index 63f76c6..4010064 100644 --- a/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/build_macos_test.dart
@@ -79,7 +79,7 @@ FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), }); - testUsingContext('macOS build invokes build script', () async { + testUsingContext('macOS build invokes xcode build', () async { final BuildCommand command = BuildCommand(); applyMocksToCommand(command); fs.directory('macos').createSync(); @@ -91,8 +91,8 @@ projectDir: flutterProject.directory, buildDir: flutterProject.dartTool.childDirectory('flutter_build'), defines: <String, String>{ - kBuildMode: 'release', - kTargetFile: fs.path.absolute(fs.path.join('lib', 'main.dart')), + kBuildMode: 'debug', + kTargetFile: 'lib/main.dart', kTargetPlatform: 'darwin-x64', } );
diff --git a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart index d0d7c3b..0f9f77e 100644 --- a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart
@@ -48,24 +48,6 @@ ProcessManager: () => mockProcessManager, }); - testUsingContext('stopApp', () async { - const String psOut = r''' -tester 17193 0.0 0.2 4791128 37820 ?? S 2:27PM 0:00.09 /Applications/foo -'''; - final MockMacOSApp mockMacOSApp = MockMacOSApp(); - when(mockMacOSApp.executable).thenReturn('tester'); - when(mockProcessManager.run(<String>['ps', 'aux'])).thenAnswer((Invocation invocation) async { - return ProcessResult(1, 0, psOut, ''); - }); - when(mockProcessManager.run(<String>['kill', '17193'])).thenAnswer((Invocation invocation) async { - return ProcessResult(2, 0, '', ''); - }); - expect(await device.stopApp(mockMacOSApp), true); - verify(mockProcessManager.run(<String>['kill', '17193'])); - }, overrides: <Type, Generator>{ - ProcessManager: () => mockProcessManager, - }); - group('startApp', () { MockMacOSApp macOSApp; MockFileSystem mockFileSystem;