Commit 12bc625f authored by Max Kellermann's avatar Max Kellermann

android/build.py: add aarch64 support

parent 6b407356
...@@ -29,6 +29,15 @@ android_abis = { ...@@ -29,6 +29,15 @@ android_abis = {
'cflags': '-march=armv7-a -mfpu=vfp -mfloat-abi=softfp', 'cflags': '-march=armv7-a -mfpu=vfp -mfloat-abi=softfp',
}, },
'arm64-v8a': {
'android_api_level': '21',
'arch': 'aarch64-linux-android',
'ndk_arch': 'arm64',
'toolchain_arch': 'aarch64-linux-android',
'llvm_triple': 'aarch64-none-linux-android',
'cflags': '',
},
'x86': { 'x86': {
'arch': 'i686-linux-android', 'arch': 'i686-linux-android',
'ndk_arch': 'x86', 'ndk_arch': 'x86',
...@@ -117,6 +126,7 @@ class AndroidNdkToolchain: ...@@ -117,6 +126,7 @@ class AndroidNdkToolchain:
self.is_arm = ndk_arch == 'arm' self.is_arm = ndk_arch == 'arm'
self.is_armv7 = self.is_arm and 'armv7' in self.cflags self.is_armv7 = self.is_arm and 'armv7' in self.cflags
self.is_aarch64 = ndk_arch == 'arm64'
self.is_windows = False self.is_windows = False
libcxx_path = os.path.join(ndk_path, 'sources/cxx-stl/llvm-libc++') libcxx_path = os.path.join(ndk_path, 'sources/cxx-stl/llvm-libc++')
......
...@@ -198,6 +198,7 @@ if test x$host_is_android = xyes; then ...@@ -198,6 +198,7 @@ if test x$host_is_android = xyes; then
AS_CASE([$host_cpu], AS_CASE([$host_cpu],
[i686], [android_abi="x86"], [i686], [android_abi="x86"],
[aarch64], [android_abi="arm64-v8a"],
[android_abi="armeabi-v7a"]) [android_abi="armeabi-v7a"])
fi fi
......
...@@ -21,6 +21,8 @@ class FfmpegProject(Project): ...@@ -21,6 +21,8 @@ class FfmpegProject(Project):
if toolchain.is_arm: if toolchain.is_arm:
arch = 'arm' arch = 'arm'
elif toolchain.is_aarch64:
arch = 'aarch64'
else: else:
arch = 'x86' arch = 'x86'
......
...@@ -20,6 +20,9 @@ class MesonProject(Project): ...@@ -20,6 +20,9 @@ class MesonProject(Project):
cpu = 'armv7' cpu = 'armv7'
else: else:
cpu = 'armv6' cpu = 'armv6'
elif toolchain.is_aarch64:
cpu_family = 'aarch64'
cpu = 'arm64-v8a'
else: else:
cpu_family = 'x86' cpu_family = 'x86'
if 'x86_64' in toolchain.arch: if 'x86_64' in toolchain.arch:
......
...@@ -65,6 +65,7 @@ class CrossGccToolchain: ...@@ -65,6 +65,7 @@ class CrossGccToolchain:
self.is_arm = arch.startswith('arm') self.is_arm = arch.startswith('arm')
self.is_armv7 = self.is_arm and 'armv7' in self.cflags self.is_armv7 = self.is_arm and 'armv7' in self.cflags
self.is_aarch64 = arch == 'aarch64'
self.is_windows = 'mingw32' in arch self.is_windows = 'mingw32' in arch
self.env = dict(os.environ) self.env = dict(os.environ)
......
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