Add arm64 Linux host support (#29)
Fixed https://github.com/sony/flutter-elinux/issues/2
This commit is contained in:
committed by
GitHub
parent
7c7e4eb542
commit
ca037ac2d7
@@ -67,7 +67,12 @@ class BuildPackageCommand extends BuildSubCommand with ELinuxExtension {
|
||||
@override
|
||||
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
||||
<DevelopmentArtifact>{
|
||||
DevelopmentArtifact.androidGenSnapshot,
|
||||
// Use gensnapshot for Arm64 Linux when the host is arm64 because
|
||||
// the artifacts for arm64 host don't support self-building now.
|
||||
if (_getCurrentHostPlatformArchName() == 'arm64')
|
||||
DevelopmentArtifact.linux,
|
||||
if (_getCurrentHostPlatformArchName() == 'x64')
|
||||
DevelopmentArtifact.androidGenSnapshot,
|
||||
ELinuxDevelopmentArtifact.elinux,
|
||||
};
|
||||
|
||||
|
||||
+13
-1
@@ -5,6 +5,8 @@
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:flutter_tools/src/base/os.dart';
|
||||
import 'package:flutter_tools/src/build_info.dart';
|
||||
import 'package:flutter_tools/src/cache.dart';
|
||||
import 'package:flutter_tools/src/commands/run.dart';
|
||||
|
||||
@@ -18,7 +20,17 @@ class ELinuxRunCommand extends RunCommand with ELinuxExtension {
|
||||
@override
|
||||
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
||||
<DevelopmentArtifact>{
|
||||
DevelopmentArtifact.androidGenSnapshot,
|
||||
// Use gensnapshot for Arm64 Linux when the host is arm64 because
|
||||
// the artifacts for arm64 host don't support self-building now.
|
||||
if (_getCurrentHostPlatformArchName() == 'arm64')
|
||||
DevelopmentArtifact.linux,
|
||||
if (_getCurrentHostPlatformArchName() == 'x64')
|
||||
DevelopmentArtifact.androidGenSnapshot,
|
||||
ELinuxDevelopmentArtifact.elinux,
|
||||
};
|
||||
|
||||
String _getCurrentHostPlatformArchName() {
|
||||
final HostPlatform hostPlatform = getCurrentHostPlatform();
|
||||
return getNameForHostPlatformArch(hostPlatform);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import 'package:flutter_tools/src/android/gradle.dart';
|
||||
import 'package:flutter_tools/src/base/analyze_size.dart';
|
||||
import 'package:flutter_tools/src/base/common.dart';
|
||||
import 'package:flutter_tools/src/base/logger.dart';
|
||||
import 'package:flutter_tools/src/base/os.dart';
|
||||
import 'package:flutter_tools/src/build_info.dart';
|
||||
import 'package:flutter_tools/src/build_system/build_system.dart';
|
||||
import 'package:flutter_tools/src/cache.dart';
|
||||
@@ -145,10 +146,26 @@ class ELinuxBuilder {
|
||||
|
||||
/// See: [getTargetPlatformForName] in `build_info.dart`
|
||||
TargetPlatform _getTargetPlatformForArch(String arch) {
|
||||
final String hostArch = _getCurrentHostPlatformArchName();
|
||||
switch (arch) {
|
||||
case 'arm64':
|
||||
// Use gensnapshot for Arm64 Linux when the host is arm64 because
|
||||
// the artifacts for arm64 host don't support self-building now.
|
||||
if (hostArch == 'arm64') {
|
||||
return TargetPlatform.linux_arm64;
|
||||
}
|
||||
return TargetPlatform.android_arm64;
|
||||
default:
|
||||
// Use gensnapshot for Arm64 Linux when the host is arm64 because
|
||||
// the artifacts for arm64 host don't support self-building now.
|
||||
if (hostArch == 'arm64') {
|
||||
return TargetPlatform.linux_x64;
|
||||
}
|
||||
return TargetPlatform.android_x64;
|
||||
}
|
||||
}
|
||||
|
||||
String _getCurrentHostPlatformArchName() {
|
||||
final HostPlatform hostPlatform = getCurrentHostPlatform();
|
||||
return getNameForHostPlatformArch(hostPlatform);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user