From db1f33fd701deca11dc145239f2dc9cecf658ff7 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Fri, 6 Mar 2020 16:57:18 -0800 Subject: [PATCH] Revert "Local engine build mode (#52043)" (#52152) This reverts commit 4d05ed5deb19a6d3b874bc35f4216198ecb06f74. --- .../flutter_tools/lib/src/ios/xcodeproj.dart | 15 +--- .../general.shard/ios/xcodeproj_test.dart | 88 ++++--------------- 2 files changed, 20 insertions(+), 83 deletions(-) diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 4ab5bdaa505..978fc5c23e6 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -210,20 +210,9 @@ List _xcodeBuildSettingsLines({ if (globals.artifacts is LocalEngineArtifacts) { final LocalEngineArtifacts localEngineArtifacts = globals.artifacts as LocalEngineArtifacts; - final String engineOutPath = globals.fs.path.basename(localEngineArtifacts.engineOutPath); - String engineBuildMode = 'release'; - if (engineOutPath.toLowerCase().contains('debug')) { - engineBuildMode = 'debug'; - } else if (engineOutPath.toLowerCase().contains('profile')) { - engineBuildMode = 'profile'; - } + final String engineOutPath = localEngineArtifacts.engineOutPath; xcodeBuildSettings.add('FLUTTER_ENGINE=${globals.fs.path.dirname(globals.fs.path.dirname(engineOutPath))}'); - xcodeBuildSettings.add('LOCAL_ENGINE=$engineOutPath'); - // Only write this for local engines, where it is supposed to be sticky to - // match the engine configuration. Avoid writing it otherwise so that it - // does not stick the user with the wrong build mode, particularly for - // existing app use cases. - xcodeBuildSettings.add('FLUTTER_BUILD_MODE=$engineBuildMode'); + xcodeBuildSettings.add('LOCAL_ENGINE=${globals.fs.path.basename(engineOutPath)}'); // Tell Xcode not to build universal binaries for local engines, which are // single-architecture. 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 14f8b8da758..233e9d09528 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart @@ -433,24 +433,22 @@ Information about project "Runner": }); group('updateGeneratedXcodeProperties', () { - MockLocalEngineArtifacts mockEngineArtifacts; - MockArtifacts mockArtifacts; + MockLocalEngineArtifacts mockArtifacts; MockProcessManager mockProcessManager; FakePlatform macOS; FileSystem fs; setUp(() { fs = MemoryFileSystem(); - mockEngineArtifacts = MockLocalEngineArtifacts(); - mockArtifacts = MockArtifacts(); + mockArtifacts = MockLocalEngineArtifacts(); mockProcessManager = MockProcessManager(); macOS = fakePlatform('macos'); fs.file(xcodebuild).createSync(recursive: true); }); - void testUsingOsxContext(String description, dynamic testMethod(), {bool isLocalEngine = true}) { + void testUsingOsxContext(String description, dynamic testMethod()) { testUsingContext(description, testMethod, overrides: { - Artifacts: () => isLocalEngine ? mockEngineArtifacts : mockArtifacts, + Artifacts: () => mockArtifacts, Platform: () => macOS, FileSystem: () => fs, ProcessManager: () => mockProcessManager, @@ -458,9 +456,9 @@ Information about project "Runner": } testUsingOsxContext('sets OTHER_LDFLAGS for iOS', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn(fs.path.join('engine', 'Flutter.framework')); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); @@ -483,9 +481,9 @@ Information about project "Runner": }); testUsingOsxContext('do not set OTHER_LDFLAGS for macOS', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterMacOSFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterMacOSFramework, platform: TargetPlatform.darwin_x64, mode: anyNamed('mode'))).thenReturn(fs.path.join('engine', 'FlutterMacOS.framework')); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); @@ -509,9 +507,9 @@ Information about project "Runner": }); testUsingOsxContext('sets ARCHS=armv7 when armv7 local engine is set', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); @@ -533,59 +531,10 @@ Information about project "Runner": expect(buildPhaseScriptContents.contains('ARCHS=armv7'), isTrue); }); - testUsingOsxContext('sets FLUTTER_BUILD_MODE local engine is set', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, - platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); - - const BuildInfo buildInfo = BuildInfo(BuildMode.profile, null, treeShakeIcons: false); - final FlutterProject project = FlutterProject.fromPath('path/to/project'); - await updateGeneratedXcodeProperties( - project: project, - buildInfo: buildInfo, - ); - - final File config = fs.file('path/to/project/ios/Flutter/Generated.xcconfig'); - expect(config.existsSync(), isTrue); - - final String contents = config.readAsStringSync(); - expect(contents, contains('FLUTTER_BUILD_MODE=profile')); - - final File buildPhaseScript = fs.file('path/to/project/ios/Flutter/flutter_export_environment.sh'); - expect(buildPhaseScript.existsSync(), isTrue); - - final String buildPhaseScriptContents = buildPhaseScript.readAsStringSync(); - expect(buildPhaseScriptContents, contains('FLUTTER_BUILD_MODE=profile')); - }); - - testUsingOsxContext('does not set FLUTTER_BUILD_MODE without local engine', () async { + testUsingOsxContext('sets TRACK_WIDGET_CREATION=true when trackWidgetCreation is true', () async { when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - - const BuildInfo buildInfo = BuildInfo(BuildMode.profile, null, treeShakeIcons: false); - final FlutterProject project = FlutterProject.fromPath('path/to/project'); - await updateGeneratedXcodeProperties( - project: project, - buildInfo: buildInfo, - ); - - final File config = fs.file('path/to/project/ios/Flutter/Generated.xcconfig'); - expect(config.existsSync(), isTrue); - - final String contents = config.readAsStringSync(); - expect(contents, isNot(contains('FLUTTER_BUILD_MODE='))); - - final File buildPhaseScript = fs.file('path/to/project/ios/Flutter/flutter_export_environment.sh'); - expect(buildPhaseScript.existsSync(), isTrue); - - final String buildPhaseScriptContents = buildPhaseScript.readAsStringSync(); - expect(buildPhaseScriptContents, isNot(contains('FLUTTER_BUILD_MODE='))); - }, isLocalEngine: false); - - testUsingOsxContext('sets TRACK_WIDGET_CREATION=true when trackWidgetCreation is true', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, - platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, trackWidgetCreation: true, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); await updateGeneratedXcodeProperties( @@ -607,9 +556,9 @@ Information about project "Runner": }); testUsingOsxContext('does not set TRACK_WIDGET_CREATION when trackWidgetCreation is false', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); await updateGeneratedXcodeProperties( @@ -631,9 +580,9 @@ Information about project "Runner": }); testUsingOsxContext('sets ARCHS=armv7 when armv7 local engine is set', () async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile')); const BuildInfo buildInfo = BuildInfo(BuildMode.debug, null, treeShakeIcons: false); final FlutterProject project = FlutterProject.fromPath('path/to/project'); @@ -664,9 +613,9 @@ Information about project "Runner": String expectedBuildName, String expectedBuildNumber, }) async { - when(mockEngineArtifacts.getArtifactPath(Artifact.flutterFramework, + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: anyNamed('mode'))).thenReturn('engine'); - when(mockEngineArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios')); + when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios')); final File manifestFile = fs.file('path/to/project/pubspec.yaml'); manifestFile.createSync(recursive: true); @@ -860,4 +809,3 @@ class MockAnsiTerminal extends Mock implements AnsiTerminal { @override bool get supportsColor => false; } -class MockArtifacts extends Mock implements Artifacts {}