Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1126)

Unified Diff: build/toolchain/android/BUILD.gn

Issue 117863003: Work on GN toolchain definitions and build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/default_goma_for_android.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/toolchain/android/BUILD.gn
diff --git a/build/toolchain/android/BUILD.gn b/build/toolchain/android/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..7710cd0f9962b013efb5be10429ccdf1ccbd72e4
--- /dev/null
+++ b/build/toolchain/android/BUILD.gn
@@ -0,0 +1,101 @@
+# 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("../clang.gni")
+import("../goma.gni")
+import("../gcc_toolchain.gni")
+
+# Get the location of the Android tools in our tree.
+android_ndk_root =
+ rebase_path("//third_party/android_tools/ndk", ".", "")
+android_sdk_root =
+ rebase_path("//third_party/android_tools/sdk", ".", "")
+
+# Get the Android version of the name of the build host's architecture.
+if (build_cpu_arch == "x64") {
+ android_host_arch = "x86_64"
+} else if (build_cpu_arch == "x86") {
+ android_host_arch = "x86"
+} else {
+ assert(false, "Need Android toolchain support for your build OS.")
+}
+
+if (is_gyp) {
+ # Set the compilers for GYP to use. This logic is only relevant to GYP where
+ # there is "a" target compiler. In native GN builds, we have separate
+ # compilers for the toolchains below, any or all of which could be active in
+ # any given build.
+ if (is_clang) {
+ # Set the GYP header for all toolchains when running under Clang.
+ gyp_header = make_clang_global_settings
+ } else {
+ # Find the compiler for GYP for non-Clang Android.
+ if (cpu_arch == "x86") {
+ android_toolchain_arch = "x86-4.6"
+ } else if (cpu_arch == "arm") {
+ android_toolchain_arch = "arm-linux-androideabi-4.6"
+ } else {
+ assert(false, "Need Android toolchain support for your platform.")
+ }
+
+ android_toolchain =
+ "$android_ndk_root/toolchains/$android_toolchain_arch/prebuilt/$build_os-$android_host_arch/bin"
+
+ # This script will find the compilers for the given Android toolchain
+ # directory.
+ # TODO(brettw) write this script which locates the Android compilers.
+ #android_compilers = exec_script("find_android_compilers.py",
+ # [android_toolchain], "value")
+ android_compilers = ["gcc", "g++", "gcc", "g++"]
+ gyp_header =
+ "'make_global_settings': [" +
+ "['CC', '" + android_compilers[0] + "']," +
+ "['CXX', '" + android_compilers[1] + "']," +
+ "['CC.host', '" + android_compilers[2] + "']," +
+ "['CXX.host', '" + android_compilers[3] + "']," +
+ "],"
+ }
+
+ if (use_goma) {
+ # There is a TODO(yyanagisawa) in common.gypi about the make generator not
+ # supporting CC_wrapper without CC. As a result, we must add a condition
+ # when on the generator when we're not explicitly setting the variables
+ # above (which happens when gyp_header is empty at this point).
+ #
+ # GYP will interpret the file once for each generator, so we have to write
+ # this condition into the GYP file since the user could have more than one
+ # generator set.
+ if (gyp_header == "") {
+ gyp_header +=
+ "'conditions':" +
+ "['\"<(GENERATOR)\"==\"ninja\"', {" +
+ make_goma_global_settings +
+ "}],"
+ } else {
+ gyp_header += make_goma_global_settings
+ }
+ }
+}
+
+gcc_toolchain("x86") {
+ prefix = "$android_ndk_root/toolchains/x86-4.6/prebuilt/$build_os-$android_host_arch/bin/i686-linux-android-"
+ cc = prefix + "gcc"
+ cxx = prefix + "g++"
+ ar = prefix + "ar"
+ ld = cxx
+
+ toolchain_cpu_arch = "x86"
+ toolchain_os = "android"
+}
+
+gcc_toolchain("arm") {
+ prefix = "$android_ndk_root/toolchains/arm-linux-androideabi-4.6/prebuilt/$build_os-$android_host_arch/bin/arm-linux-androideabi-"
+ cc = prefix + "gcc"
+ cxx = prefix + "g++"
+ ar = prefix + "ar"
+ ld = cxx
+
+ toolchain_cpu_arch = "arm"
+ toolchain_os = "android"
+}
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/default_goma_for_android.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698