ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / build / config / android / config.gni
blobcebf4de6b7c1dc41a9a53cddee6ece7dbad909df
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # This file contains common system config stuff for the Android build.
7 if (is_android) {
8   has_chrome_android_internal =
9       exec_script("//build/dir_exists.py",
10                   [ rebase_path("//clank", root_build_dir) ],
11                   "string") == "True"
13   if (has_chrome_android_internal) {
14     import("//clank/config.gni")
15   }
17   if (!defined(default_android_sdk_root)) {
18     default_android_sdk_root = "//third_party/android_tools/sdk"
19     default_android_sdk_version = "21"
20     default_android_sdk_build_tools_version = "21.0.1"
21   }
23   if (!defined(google_play_services_library)) {
24     google_play_services_library =
25         "//third_party/android_tools:google_play_services_default_java"
26   }
28   declare_args() {
29     android_sdk_root = default_android_sdk_root
30     android_sdk_version = default_android_sdk_version
31     android_sdk_build_tools_version = default_android_sdk_build_tools_version
33     # This is set when building the Android WebView inside the Android build
34     # system, using the 'android' gyp backend. The WebView code is still built
35     # when this is unset, but builds using the normal chromium build system.
36     is_android_webview_build = false
38     android_default_keystore_path =
39         "//build/android/ant/chromium-debug.keystore"
40     android_default_keystore_name = "chromiumdebugkey"
41     android_default_keystore_password = "chromium"
43     # This is a unique identifier for a given build. It's used for
44     # identifying various build artifacts corresponding to a particular build of
45     # chrome (e.g. where to find archived symbols).
46     android_chrome_build_id = "\"\""
47   }
49   # Host stuff -----------------------------------------------------------------
51   # Defines the name the Android build gives to the current host CPU
52   # architecture, which is different than the names GN uses.
53   if (host_cpu == "x64") {
54     android_host_arch = "x86_64"
55   } else if (host_cpu == "x86") {
56     android_host_arch = "x86"
57   } else {
58     assert(false, "Need Android toolchain support for your build CPU arch.")
59   }
61   # Defines the name the Android build gives to the current host CPU
62   # architecture, which is different than the names GN uses.
63   if (host_os == "linux") {
64     android_host_os = "linux"
65   } else {
66     assert(false, "Need Android toolchain support for your build OS.")
67   }
69   # Directories and files ------------------------------------------------------
70   #
71   # We define may of the dirs strings here for each output architecture (rather
72   # than just the current one) since these are needed by the Android toolchain
73   # file to define toolchains for all possible targets in one pass.
75   android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"
77   # Path to the Android NDK and SDK.
78   android_ndk_root = "//third_party/android_tools/ndk"
79   android_ndk_include_dir = "$android_ndk_root/usr/include"
81   android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"
83   android_sdk_tools = "${android_sdk_root}/tools"
84   android_sdk_build_tools =
85       "${android_sdk_root}/build-tools/$android_sdk_build_tools_version"
87   # Path to the SDK's android.jar
88   android_sdk_jar = "$android_sdk/android.jar"
90   zipalign_path = "$android_sdk_build_tools/zipalign"
92   # Subdirectories inside android_ndk_root that contain the sysroot for the
93   # associated platform.
94   _android_api_level = 14
95   x86_android_sysroot_subdir =
96       "platforms/android-${_android_api_level}/arch-x86"
97   arm_android_sysroot_subdir =
98       "platforms/android-${_android_api_level}/arch-arm"
99   mips_android_sysroot_subdir =
100       "platforms/android-${_android_api_level}/arch-mips"
101   _android64_api_level = 21
102   x86_64_android_sysroot_subdir =
103       "platforms/android-${_android64_api_level}/arch-x86_64"
104   arm64_android_sysroot_subdir =
105       "platforms/android-${_android64_api_level}/arch-arm64"
106   mips64_android_sysroot_subdir =
107       "platforms/android-${_android64_api_level}/arch-mips64"
109   # Toolchain root directory for each build. The actual binaries are inside
110   # a "bin" directory inside of these.
111   _android_toolchain_version = "4.9"
112   x86_android_toolchain_root = "$android_ndk_root/toolchains/x86-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
113   arm_android_toolchain_root = "$android_ndk_root/toolchains/arm-linux-androideabi-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
114   mips_android_toolchain_root = "$android_ndk_root/toolchains/mipsel-linux-android-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
115   x86_64_android_toolchain_root = "$android_ndk_root/toolchains/x86_64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
116   arm64_android_toolchain_root = "$android_ndk_root/toolchains/aarch64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
117   mips64_android_toolchain_root = "$android_ndk_root/toolchains/mips64el-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
119   # Location of libgcc. This is only needed for the current GN toolchain, so we
120   # only need to define the current one, rather than one for every platform
121   # like the toolchain roots.
122   if (current_cpu == "x86") {
123     android_prebuilt_arch = "android-x86"
124     _binary_prefix = "i686-linux-android"
125     android_toolchain_root = "$x86_android_toolchain_root"
126     android_libgcc_file = "$android_toolchain_root/lib/gcc/i686-linux-android/${_android_toolchain_version}/libgcc.a"
127   } else if (current_cpu == "arm") {
128     android_prebuilt_arch = "android-arm"
129     _binary_prefix = "arm-linux-androideabi"
130     android_toolchain_root = "$arm_android_toolchain_root"
131     android_libgcc_file = "$android_toolchain_root/lib/gcc/arm-linux-androideabi/${_android_toolchain_version}/libgcc.a"
132   } else if (current_cpu == "mipsel") {
133     android_prebuilt_arch = "android-mips"
134     _binary_prefix = "mipsel-linux-android"
135     android_toolchain_root = "$mips_android_toolchain_root"
136     android_libgcc_file = "$android_toolchain_root/lib/gcc/mipsel-linux-android/${_android_toolchain_version}/libgcc.a"
137   } else if (current_cpu == "x64") {
138     android_prebuilt_arch = "android-x86_64"
139     _binary_prefix = "x86_64-linux-android"
140     android_toolchain_root = "$x86_64_android_toolchain_root"
141     android_libgcc_file = "$android_toolchain_root/lib/gcc/x86_64-linux-android/${_android_toolchain_version}/libgcc.a"
142   } else if (current_cpu == "arm64") {
143     android_prebuilt_arch = "android-arm64"
144     _binary_prefix = "aarch64-linux-android"
145     android_toolchain_root = "$arm64_android_toolchain_root"
146     android_libgcc_file = "$android_toolchain_root/lib/gcc/aarch64-linux-android/${_android_toolchain_version}/libgcc.a"
147   } else if (current_cpu == "mips64el") {
148     android_prebuilt_arch = "android-mips64"
149     _binary_prefix = "mips64el-linux-android"
150     android_toolchain_root = "$mips64_android_toolchain_root"
151     android_libgcc_file = "$android_toolchain_root/lib/gcc/mips64el-linux-android/${_android_toolchain_version}/libgcc.a"
152   } else {
153     assert(false, "Need android libgcc support for your target arch.")
154   }
156   android_tool_prefix = "$android_toolchain_root/bin/$_binary_prefix-"
157   android_readelf = "${android_tool_prefix}readelf"
158   android_objcopy = "${android_tool_prefix}objcopy"
159   android_gdbserver =
160       "$android_ndk_root/prebuilt/$android_prebuilt_arch/gdbserver/gdbserver"
162   # stlport stuff --------------------------------------------------------------
164   if (component_mode == "shared_library") {
165     android_stlport_library = "stlport_shared"
166   } else {
167     android_stlport_library = "stlport_static"
168   }
170   # ABI ------------------------------------------------------------------------
172   if (current_cpu == "x86") {
173     android_app_abi = "x86"
174   } else if (current_cpu == "arm") {
175     import("//build/config/arm.gni")
176     if (arm_version < 7) {
177       android_app_abi = "armeabi"
178     } else {
179       android_app_abi = "armeabi-v7a"
180     }
181   } else if (current_cpu == "mipsel") {
182     android_app_abi = "mips"
183   } else if (current_cpu == "x64") {
184     android_app_abi = "x86_64"
185   } else if (current_cpu == "arm64") {
186     android_app_abi = "arm64-v8a"
187   } else if (current_cpu == "mips64el") {
188     android_app_abi = "mips64"
189   } else {
190     assert(false, "Unknown Android ABI: " + current_cpu)
191   }
192 } else {
193   if (!defined(is_android_webview_build)) {
194     is_android_webview_build = false
195   }