Unverified Commit 7f177087 authored by 嘟囔's avatar 嘟囔 Committed by GitHub

feat: migrate ios/bitcode.dart to null safety (#92557)

parent 9d263866
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import '../artifacts.dart'; import '../artifacts.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/context.dart'; import '../base/context.dart';
...@@ -16,21 +14,23 @@ import '../macos/xcode.dart'; ...@@ -16,21 +14,23 @@ import '../macos/xcode.dart';
const bool kBitcodeEnabledDefault = false; const bool kBitcodeEnabledDefault = false;
Future<void> validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform, EnvironmentType environmentType) async { Future<void> validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform, EnvironmentType environmentType) async {
final Artifacts localArtifacts = globals.artifacts; final Artifacts? localArtifacts = globals.artifacts;
final String flutterFrameworkPath = localArtifacts.getArtifactPath( final String? flutterFrameworkPath = localArtifacts?.getArtifactPath(
Artifact.flutterFramework, Artifact.flutterFramework,
mode: buildMode, mode: buildMode,
platform: targetPlatform, platform: targetPlatform,
environmentType: environmentType, environmentType: environmentType,
); );
final Xcode xcode = context.get<Xcode>(); final Xcode? xcode = context.get<Xcode>();
final RunResult clangResult = await xcode.clang(<String>['--version']); final RunResult? clangResult = await xcode?.clang(<String>['--version']);
final String clangVersion = clangResult.stdout.split('\n').first; final String? clangVersion = clangResult?.stdout.split('\n').first;
final String engineClangVersion = globals.plistParser.getValueFromFile( final String? engineClangVersion = flutterFrameworkPath == null
globals.fs.path.join(flutterFrameworkPath, 'Info.plist'), ? null
'ClangVersion', : globals.plistParser.getValueFromFile(
); globals.fs.path.join(flutterFrameworkPath, 'Info.plist'),
'ClangVersion',
);
final Version engineClangSemVer = _parseVersionFromClang(engineClangVersion); final Version engineClangSemVer = _parseVersionFromClang(engineClangVersion);
final Version clangSemVer = _parseVersionFromClang(clangVersion); final Version clangSemVer = _parseVersionFromClang(clangVersion);
if (engineClangSemVer > clangSemVer) { if (engineClangSemVer > clangSemVer) {
...@@ -44,9 +44,9 @@ Future<void> validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform, ...@@ -44,9 +44,9 @@ Future<void> validateBitcode(BuildMode buildMode, TargetPlatform targetPlatform,
} }
} }
Version _parseVersionFromClang(String clangVersion) { Version _parseVersionFromClang(String? clangVersion) {
final RegExp pattern = RegExp(r'Apple (LLVM|clang) version (\d+\.\d+\.\d+) '); final RegExp pattern = RegExp(r'Apple (LLVM|clang) version (\d+\.\d+\.\d+) ');
void _invalid() { Never _invalid() {
throwToolExit('Unable to parse Clang version from "$clangVersion". ' throwToolExit('Unable to parse Clang version from "$clangVersion". '
'Expected a string like "Apple (LLVM|clang) #.#.# (clang-####.#.##.#)".'); 'Expected a string like "Apple (LLVM|clang) #.#.# (clang-####.#.##.#)".');
} }
...@@ -54,11 +54,11 @@ Version _parseVersionFromClang(String clangVersion) { ...@@ -54,11 +54,11 @@ Version _parseVersionFromClang(String clangVersion) {
if (clangVersion == null || clangVersion.isEmpty) { if (clangVersion == null || clangVersion.isEmpty) {
_invalid(); _invalid();
} }
final RegExpMatch match = pattern.firstMatch(clangVersion); final RegExpMatch? match = pattern.firstMatch(clangVersion);
if (match == null || match.groupCount != 2) { if (match == null || match.groupCount != 2) {
_invalid(); _invalid();
} }
final Version version = Version.parse(match.group(2)); final Version? version = Version.parse(match.group(2));
if (version == null) { if (version == null) {
_invalid(); _invalid();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment