diff options
author | halton.huo <halton.huo@intel.com> | 2015-02-10 16:08:27 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-11 00:09:18 +0000 |
commit | 98de73d11797b1b0ac7ac0b2f4234cb8f57bd2fc (patch) | |
tree | 342904afed4926161a27d2b7a33dc853b7cfd534 | |
parent | e8b2c284894dd80000299c72c45f43bbd7d5ba91 (diff) | |
download | chromium_src-98de73d11797b1b0ac7ac0b2f4234cb8f57bd2fc.zip chromium_src-98de73d11797b1b0ac7ac0b2f4234cb8f57bd2fc.tar.gz chromium_src-98de73d11797b1b0ac7ac0b2f4234cb8f57bd2fc.tar.bz2 |
Add GN build support for Android 64-bit platforms.
gn now run with arg target_arch = "x64", arm64 and mips64el
releated changes are added as well but not verified.
BUG=none
Review URL: https://codereview.chromium.org/864173006
Cr-Commit-Position: refs/heads/master@{#315680}
-rw-r--r-- | build/config/android/config.gni | 31 | ||||
-rw-r--r-- | build/config/sysroot.gni | 6 | ||||
-rw-r--r-- | build/toolchain/android/BUILD.gn | 24 |
3 files changed, 61 insertions, 0 deletions
diff --git a/build/config/android/config.gni b/build/config/android/config.gni index 7529a44..0105a64 100644 --- a/build/config/android/config.gni +++ b/build/config/android/config.gni @@ -98,6 +98,13 @@ if (is_android) { "platforms/android-${_android_api_level}/arch-arm" mips_android_sysroot_subdir = "platforms/android-${_android_api_level}/arch-mips" + _android64_api_level = 21 + x86_64_android_sysroot_subdir = + "platforms/android-${_android64_api_level}/arch-x86_64" + arm64_android_sysroot_subdir = + "platforms/android-${_android64_api_level}/arch-arm64" + mips64_android_sysroot_subdir = + "platforms/android-${_android64_api_level}/arch-mips64" # Toolchain root directory for each build. The actual binaries are inside # a "bin" directory inside of these. @@ -105,6 +112,9 @@ if (is_android) { x86_android_toolchain_root = "$android_ndk_root/toolchains/x86-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" arm_android_toolchain_root = "$android_ndk_root/toolchains/arm-linux-androideabi-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" mips_android_toolchain_root = "$android_ndk_root/toolchains/mipsel-linux-android-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" + x86_64_android_toolchain_root = "$android_ndk_root/toolchains/x86_64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" + arm64_android_toolchain_root = "$android_ndk_root/toolchains/aarch64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" + mips64_android_toolchain_root = "$android_ndk_root/toolchains/mips64el-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}" # Location of libgcc. This is only needed for the current GN toolchain, so we # only need to define the current one, rather than one for every platform @@ -124,6 +134,21 @@ if (is_android) { _binary_prefix = "mipsel-linux-android" android_toolchain_root = "$mips_android_toolchain_root" android_libgcc_file = "$android_toolchain_root/lib/gcc/mipsel-linux-android/${_android_toolchain_version}/libgcc.a" + } else if (cpu_arch == "x64") { + android_prebuilt_arch = "android-x86_64" + _binary_prefix = "x86_64-linux-android" + android_toolchain_root = "$x86_64_android_toolchain_root" + android_libgcc_file = "$android_toolchain_root/lib/gcc/x86_64-linux-android/${_android_toolchain_version}/libgcc.a" + } else if (cpu_arch == "arm64") { + android_prebuilt_arch = "android-arm64" + _binary_prefix = "aarch64-linux-android" + android_toolchain_root = "$arm64_android_toolchain_root" + android_libgcc_file = "$android_toolchain_root/lib/gcc/aarch64-linux-android/${_android_toolchain_version}/libgcc.a" + } else if (cpu_arch == "mips64el") { + android_prebuilt_arch = "android-mips64" + _binary_prefix = "mips64el-linux-android" + android_toolchain_root = "$mips64_android_toolchain_root" + android_libgcc_file = "$android_toolchain_root/lib/gcc/mips64el-linux-android/${_android_toolchain_version}/libgcc.a" } else { assert(false, "Need android libgcc support for your target arch.") } @@ -155,6 +180,12 @@ if (is_android) { } } else if (cpu_arch == "mipsel") { android_app_abi = "mips" + } else if (cpu_arch == "x64") { + android_app_abi = "x86_64" + } else if (cpu_arch == "arm64") { + android_app_abi = "arm64-v8a" + } else if (cpu_arch == "mips64el") { + android_app_abi = "mips64" } else { assert(false, "Unknown Android ABI: " + cpu_arch) } diff --git a/build/config/sysroot.gni b/build/config/sysroot.gni index 77032f7..a9b250c 100644 --- a/build/config/sysroot.gni +++ b/build/config/sysroot.gni @@ -22,6 +22,12 @@ if (current_toolchain == default_toolchain && target_sysroot != "") { sysroot = rebase_path("$android_ndk_root/$arm_android_sysroot_subdir") } else if (cpu_arch == "mipsel") { sysroot = rebase_path("$android_ndk_root/$mips_android_sysroot_subdir") + } else if (cpu_arch == "x64") { + sysroot = rebase_path("$android_ndk_root/$x86_64_android_sysroot_subdir") + } else if (cpu_arch == "arm64") { + sysroot = rebase_path("$android_ndk_root/$arm64_android_sysroot_subdir") + } else if (cpu_arch == "mips64") { + sysroot = rebase_path("$android_ndk_root/$mips64_android_sysroot_subdir") } else { sysroot = "" } diff --git a/build/toolchain/android/BUILD.gn b/build/toolchain/android/BUILD.gn index d21ed27..3ce3363 100644 --- a/build/toolchain/android/BUILD.gn +++ b/build/toolchain/android/BUILD.gn @@ -103,3 +103,27 @@ android_gcc_toolchain("mipsel") { tool_prefix = "$mips_android_toolchain_root/bin/mipsel-linux-android-" toolchain_cpu_arch = "mipsel" } + +android_gcc_toolchain("x64") { + android_ndk_sysroot = "$android_ndk_root/$x86_64_android_sysroot_subdir" + android_ndk_lib_dir = "usr/lib" + + tool_prefix = "$x86_64_android_toolchain_root/bin/x86_64-linux-android-" + toolchain_cpu_arch = "x86_64" +} + +android_gcc_toolchain("arm64") { + android_ndk_sysroot = "$android_ndk_root/$arm64_android_sysroot_subdir" + android_ndk_lib_dir = "usr/lib" + + tool_prefix = "$arm64_android_toolchain_root/bin/arm-linux-androideabi-" + toolchain_cpu_arch = "aarch64" +} + +android_gcc_toolchain("mips64el") { + android_ndk_sysroot = "$android_ndk_root/$mips64_android_sysroot_subdir" + android_ndk_lib_dir = "usr/lib" + + tool_prefix = "$mips64_android_toolchain_root/bin/mipsel-linux-android-" + toolchain_cpu_arch = "mipsel64el" +} |