Add arm64 Linux host support (#29)
Fixed https://github.com/sony/flutter-elinux/issues/2
This commit is contained in:
@@ -67,7 +67,12 @@ class BuildPackageCommand extends BuildSubCommand with ELinuxExtension {
|
|||||||
@override
|
@override
|
||||||
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
||||||
<DevelopmentArtifact>{
|
<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,
|
ELinuxDevelopmentArtifact.elinux,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+13
-1
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
// @dart = 2.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/cache.dart';
|
||||||
import 'package:flutter_tools/src/commands/run.dart';
|
import 'package:flutter_tools/src/commands/run.dart';
|
||||||
|
|
||||||
@@ -18,7 +20,17 @@ class ELinuxRunCommand extends RunCommand with ELinuxExtension {
|
|||||||
@override
|
@override
|
||||||
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
Future<Set<DevelopmentArtifact>> get requiredArtifacts async =>
|
||||||
<DevelopmentArtifact>{
|
<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,
|
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/analyze_size.dart';
|
||||||
import 'package:flutter_tools/src/base/common.dart';
|
import 'package:flutter_tools/src/base/common.dart';
|
||||||
import 'package:flutter_tools/src/base/logger.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_info.dart';
|
||||||
import 'package:flutter_tools/src/build_system/build_system.dart';
|
import 'package:flutter_tools/src/build_system/build_system.dart';
|
||||||
import 'package:flutter_tools/src/cache.dart';
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
@@ -145,10 +146,26 @@ class ELinuxBuilder {
|
|||||||
|
|
||||||
/// See: [getTargetPlatformForName] in `build_info.dart`
|
/// See: [getTargetPlatformForName] in `build_info.dart`
|
||||||
TargetPlatform _getTargetPlatformForArch(String arch) {
|
TargetPlatform _getTargetPlatformForArch(String arch) {
|
||||||
|
final String hostArch = _getCurrentHostPlatformArchName();
|
||||||
switch (arch) {
|
switch (arch) {
|
||||||
case 'arm64':
|
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;
|
return TargetPlatform.android_arm64;
|
||||||
default:
|
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;
|
return TargetPlatform.android_x64;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String _getCurrentHostPlatformArchName() {
|
||||||
|
final HostPlatform hostPlatform = getCurrentHostPlatform();
|
||||||
|
return getNameForHostPlatformArch(hostPlatform);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user