diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/libwebrtc/webrtc/build/toolchain/android | |
parent | Initial commit. (diff) | |
download | firefox-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.gn | 145 |
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" + } +} |