summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/toolchain/cros_toolchain.gni
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/build/toolchain/cros_toolchain.gni')
-rw-r--r--third_party/libwebrtc/build/toolchain/cros_toolchain.gni88
1 files changed, 88 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/toolchain/cros_toolchain.gni b/third_party/libwebrtc/build/toolchain/cros_toolchain.gni
new file mode 100644
index 0000000000..ccc4db293c
--- /dev/null
+++ b/third_party/libwebrtc/build/toolchain/cros_toolchain.gni
@@ -0,0 +1,88 @@
+# Copyright 2016 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.
+
+# CrOS builds must cross-compile on a Linux host for the actual CrOS
+# device target. There are many different CrOS devices so the build
+# system provides configuration variables that permit a CrOS build to
+# control the cross-compilation tool chain. However, requiring such
+# fine-grain specification is tedious for build-bots and developers.
+# Consequently, the CrOS build system defaults to a convenience
+# compilation mode where the compilation host is also the build target.
+#
+# Chrome can be compiled in this way with the gn variable:
+#
+# target_os = "chromeos"
+#
+# To perform a board-specific build, first obtain the correct system
+# root (http://goo.gl/aFB4XH) for the board. Then configure GN to use it
+# by setting appropriate cross-compilation variables.
+#
+# For example, to compile a Chrome source tree in /g/src for an
+# auron_paine CrOS device with the system root cached in /g/.cros_cache,
+# the following GN arguments must be provided to configure
+# cross-compilation with Goma acceleration. (NB: additional variables
+# will be necessary to successfully compile a working CrOS Chrome. See
+# the definition of GYP_DEFINES inside a sysroot shell.)
+#
+# goma_dir = "/g/.cros_cache/common/goma+2"
+# target_sysroot= /g/.cros_cache/chrome-sdk/tarballs/auron_paine+7644.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz"
+# cros_target_cc = "x86_64-cros-linux-gnu-gcc -B/g/.cros_cache/chrome-sdk/tarballs/auron_paine+7657.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold"
+# cros_target_cxx = "x86_64-cros-linux-gnu-g++ -B/g/.cros_cache/chrome-sdk/tarballs/auron_paine+7657.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold"
+# cros_target_ar = "x86_64-cros-linux-gnu-gcc-ar"
+# target_cpu = "x64"
+
+import("//build/config/clang/clang.gni")
+import("//build/config/compiler/compiler.gni")
+
+declare_args() {
+ # These must be specified for a board-specific build.
+ cros_target_ar = "ar"
+ cros_target_cc = "gcc"
+ cros_target_cxx = "g++"
+ cros_target_nm = ""
+ cros_target_readelf = ""
+
+ # These can be optionally set. The "_cppflags" will be applied to *both*
+ # C and C++ files; use "_cxxflags" for C++-only flags.
+ cros_target_extra_cflags = ""
+ cros_target_extra_cppflags = ""
+ cros_target_extra_cxxflags = ""
+ cros_target_extra_ldflags = ""
+
+ # is_clang is used instead of cros_target_is_clang
+ cros_host_ar = "${clang_base_path}/bin/llvm-ar"
+ cros_host_cc = "${clang_base_path}/bin/clang"
+ cros_host_cxx = "${clang_base_path}/bin/clang++"
+ cros_host_is_clang = true
+ cros_host_nm = ""
+ cros_host_readelf = ""
+ cros_host_extra_cflags = ""
+ cros_host_extra_cppflags = ""
+ cros_host_extra_cxxflags = ""
+ cros_host_extra_ldflags = ""
+ cros_host_sysroot = ""
+
+ cros_v8_snapshot_ar = "${clang_base_path}/bin/llvm-ar"
+ cros_v8_snapshot_cc = "${clang_base_path}/bin/clang"
+ cros_v8_snapshot_cxx = "${clang_base_path}/bin/clang++"
+ cros_v8_snapshot_is_clang = true
+ cros_v8_snapshot_nm = ""
+ cros_v8_snapshot_readelf = ""
+ cros_v8_snapshot_extra_cflags = ""
+ cros_v8_snapshot_extra_cppflags = ""
+ cros_v8_snapshot_extra_cxxflags = ""
+ cros_v8_snapshot_extra_ldflags = ""
+ cros_v8_snapshot_sysroot = ""
+
+ cros_nacl_bootstrap_extra_cflags = ""
+ cros_nacl_bootstrap_extra_cppflags = ""
+ cros_nacl_bootstrap_extra_cxxflags = ""
+ cros_nacl_bootstrap_extra_ldflags = ""
+}
+
+declare_args() {
+ cros_target_ld = cros_target_cxx
+ cros_host_ld = cros_host_cxx
+ cros_v8_snapshot_ld = cros_v8_snapshot_cxx
+}