summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/webrtc/build/toolchain/android
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/libwebrtc/webrtc/build/toolchain/android
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/webrtc/build/toolchain/android')
-rw-r--r--third_party/libwebrtc/webrtc/build/toolchain/android/BUILD.gn145
1 files changed, 145 insertions, 0 deletions
diff --git a/third_party/libwebrtc/webrtc/build/toolchain/android/BUILD.gn b/third_party/libwebrtc/webrtc/build/toolchain/android/BUILD.gn
new file mode 100644
index 0000000000..9b3b162ca6
--- /dev/null
+++ b/third_party/libwebrtc/webrtc/build/toolchain/android/BUILD.gn
@@ -0,0 +1,145 @@
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/clang/clang.gni")
+import("//build/config/sysroot.gni") # Imports android/config.gni.
+import("//build/toolchain/gcc_toolchain.gni")
+
+# The Android GCC toolchains share most of the same parameters, so we have this
+# wrapper around gcc_toolchain to avoid duplication of logic.
+#
+# Parameters:
+# - toolchain_root
+# Path to cpu-specific toolchain within the ndk.
+# - sysroot
+# Sysroot for this architecture.
+# - lib_dir
+# Subdirectory inside of sysroot where libs go.
+# - binary_prefix
+# Prefix of compiler executables.
+template("android_gcc_toolchain") {
+ gcc_toolchain(target_name) {
+ assert(defined(invoker.toolchain_args),
+ "toolchain_args must be defined for android_gcc_toolchain()")
+ toolchain_args = invoker.toolchain_args
+ toolchain_args.current_os = "android"
+
+ # Output linker map files for binary size analysis.
+ enable_linker_map = true
+
+ # Make our manually injected libs relative to the build dir.
+ _ndk_lib =
+ rebase_path(invoker.sysroot + "/" + invoker.lib_dir, root_build_dir)
+
+ libs_section_prefix = "$_ndk_lib/crtbegin_dynamic.o"
+ libs_section_postfix = "$_ndk_lib/crtend_android.o"
+
+ solink_libs_section_prefix = "$_ndk_lib/crtbegin_so.o"
+ solink_libs_section_postfix = "$_ndk_lib/crtend_so.o"
+
+ _android_tool_prefix =
+ "${invoker.toolchain_root}/bin/${invoker.binary_prefix}-"
+
+ # The tools should be run relative to the build dir.
+ _tool_prefix = rebase_path("$_android_tool_prefix", root_build_dir)
+
+ # Use the clang specified by the toolchain if there is one. Otherwise fall
+ # back to the global flag.
+ if (defined(toolchain_args.is_clang)) {
+ toolchain_uses_clang = toolchain_args.is_clang
+ } else {
+ toolchain_uses_clang = is_clang
+ }
+
+ if (toolchain_uses_clang) {
+ _prefix = rebase_path("$clang_base_path/bin", root_build_dir)
+ cc = "$_prefix/clang"
+ cxx = "$_prefix/clang++"
+ } else {
+ cc = "${_tool_prefix}gcc"
+ cxx = "${_tool_prefix}g++"
+ }
+ ar = _tool_prefix + "ar"
+ ld = cxx
+ readelf = _tool_prefix + "readelf"
+ nm = _tool_prefix + "nm"
+ strip = "${_tool_prefix}strip"
+
+ # Don't use .cr.so for loadable_modules since they are always loaded via
+ # absolute path.
+ loadable_module_extension = ".so"
+ }
+}
+
+template("android_gcc_toolchains_helper") {
+ android_gcc_toolchain("android_$target_name") {
+ forward_variables_from(invoker, "*")
+ toolchain_args.is_clang = false
+ }
+
+ android_gcc_toolchain("android_clang_$target_name") {
+ forward_variables_from(invoker, "*")
+ toolchain_args.is_clang = true
+ }
+}
+
+android_gcc_toolchains_helper("x86") {
+ toolchain_root = x86_android_toolchain_root
+ sysroot = "$android_ndk_root/$x86_android_sysroot_subdir"
+ lib_dir = "usr/lib"
+ binary_prefix = "i686-linux-android"
+ toolchain_args = {
+ current_cpu = "x86"
+ }
+}
+
+android_gcc_toolchains_helper("arm") {
+ toolchain_root = arm_android_toolchain_root
+ sysroot = "$android_ndk_root/$arm_android_sysroot_subdir"
+ lib_dir = "usr/lib"
+ binary_prefix = "arm-linux-androideabi"
+ toolchain_args = {
+ current_cpu = "arm"
+ }
+}
+
+android_gcc_toolchains_helper("mipsel") {
+ toolchain_root = mips_android_toolchain_root
+ sysroot = "$android_ndk_root/$mips_android_sysroot_subdir"
+ lib_dir = "usr/lib"
+ binary_prefix = "mipsel-linux-android"
+ toolchain_args = {
+ current_cpu = "mipsel"
+ }
+}
+
+android_gcc_toolchains_helper("x64") {
+ toolchain_root = x86_64_android_toolchain_root
+ sysroot = "$android_ndk_root/$x86_64_android_sysroot_subdir"
+ lib_dir = "usr/lib64"
+ binary_prefix = "x86_64-linux-android"
+ toolchain_args = {
+ current_cpu = "x64"
+ }
+}
+
+android_gcc_toolchains_helper("arm64") {
+ toolchain_root = arm64_android_toolchain_root
+ sysroot = "$android_ndk_root/$arm64_android_sysroot_subdir"
+ lib_dir = "usr/lib"
+ binary_prefix = "aarch64-linux-android"
+ toolchain_args = {
+ current_cpu = "arm64"
+ }
+}
+
+android_gcc_toolchains_helper("mips64el") {
+ toolchain_root = mips64_android_toolchain_root
+ sysroot = "$android_ndk_root/$mips64_android_sysroot_subdir"
+ lib_dir = "usr/lib64"
+ binary_prefix = "mips64el-linux-android"
+ toolchain_args = {
+ current_cpu = "mips64el"
+ }
+}