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

Side by Side Diff: build/config/android/BUILD.gn

Issue 1368263002: Separate out compiler and runtime configs on Windows and Android GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « no previous file | build/config/android/config.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/android/config.gni") 5 import("//build/config/android/config.gni")
6 import("//build/config/sanitizers/sanitizers.gni") 6 import("//build/config/sanitizers/sanitizers.gni")
7 import("//build/config/sysroot.gni") 7 import("//build/config/sysroot.gni")
8 8
9 assert(is_android) 9 assert(is_android)
10 10
11 config("sdk") {
12 if (sysroot != "") {
13 cflags = [ "--sysroot=" + sysroot ]
14 ldflags = [ "--sysroot=" + sysroot ]
15
16 # Need to get some linker flags out of the sysroot.
17 sysroot_ld_path = rebase_path("//build/config/linux/sysroot_ld_path.py")
18 ldflags += [ exec_script(sysroot_ld_path,
19 [
20 rebase_path("//build/linux/sysroot_ld_path.sh"),
21 sysroot,
22 ],
23 "value") ]
24 }
25 }
26
27 config("executable_config") {
28 cflags = [ "-fPIE" ]
29 ldflags = [ "-pie" ]
30 }
31
32 config("hide_native_jni_exports") {
33 ldflags = [ "-Wl,--version-script=" +
34 rebase_path("//build/android/android_no_jni_exports.lst") ]
35 }
36
37 # This is included by reference in the //build/config/compiler config that 11 # This is included by reference in the //build/config/compiler config that
38 # is applied to all targets. It is here to separate out the logic that is 12 # is applied to all targets. It is here to separate out the logic that is
39 # Android-only. 13 # Android-only.
40 config("compiler") { 14 config("compiler") {
41 cflags = [ 15 cflags = [
42 "-ffunction-sections", 16 "-ffunction-sections",
43 "-funwind-tables", 17 "-funwind-tables",
44 "-fno-short-enums", 18 "-fno-short-enums",
45 ] 19 ]
46 defines = [ 20 defines = [
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 cflags += [ 109 cflags += [
136 "-target", 110 "-target",
137 abi_target, 111 abi_target,
138 ] 112 ]
139 ldflags += [ 113 ldflags += [
140 "-target", 114 "-target",
141 abi_target, 115 abi_target,
142 ] 116 ]
143 } 117 }
144 } 118 }
119
120 # This is included by reference in the //build/config/compiler:runtime_library
121 # config that is applied to all targets. It is here to separate out the logic
122 # that is Android-only. Please see that target for advice on what should go in
123 # :runtime_library vs. :compiler.
124 config("runtime_library") {
125 # NOTE: The libc++ header include paths below are specified in cflags
126 # rather than include_dirs because they need to come after include_dirs.
127 # Think of them like system headers, but don't use '-isystem' because the
128 # arm-linux-androideabi-4.4.3 toolchain (circa Gingerbread) will exhibit
129 # strange errors. The include ordering here is important; change with
130 # caution.
131 cflags = [
132 "-isystem" +
133 rebase_path("$android_libcpp_root/libcxx/include", root_build_dir),
134 "-isystem" + rebase_path(
135 "$android_ndk_root/sources/cxx-stl/llvm-libc++abi/libcxxabi/include" ,
136 root_build_dir),
137 "-isystem" +
138 rebase_path("$android_ndk_root/sources/android/support/include",
139 root_build_dir),
140 ]
141
142 defines = [ "__GNU_SOURCE=1" ] # Necessary for clone().
143 ldflags = [ "-nostdlib" ]
144 lib_dirs = [ "$android_libcpp_root/libs/$android_app_abi" ]
145 libs = [
146 "c",
147 "dl",
148 "m",
149 ]
150
151 # The libc++ runtime library.
152 if (is_component_build) {
153 libs += [ "c++_shared" ]
154 } else {
155 libs += [ "c++_static" ]
156 }
157
158 if (is_clang) {
159 # Work around incompatibilities between bionic and clang headers.
160 defines += [
161 "__compiler_offsetof=__builtin_offsetof",
162 "nan=__builtin_nan",
163 ]
164 }
165
166 # TODO(jdduke) Re-enable on mips after resolving linking
167 # issues with libc++ (crbug.com/456380).
168 if (current_cpu != "mipsel" && current_cpu != "mips64el") {
169 ldflags += [ "-Wl,--warn-shared-textrel" ]
170 }
171
172 if (current_cpu == "mipsel") {
173 libs += [
174 # ld linker is used for mips Android, and ld does not accept library
175 # absolute path prefixed by "-l"; Since libgcc does not exist in mips
176 # sysroot the proper library will be linked.
177 # TODO(gordanac): Remove once gold linker is used for mips Android.
178 "gcc",
179 ]
180 } else {
181 libs += [
182 # Manually link the libgcc.a that the cross compiler uses. This is
183 # absolute because the linker will look inside the sysroot if it's not.
184 rebase_path(android_libgcc_file),
185 ]
186 }
187
188 # Clang with libc++ does not require an explicit atomic library reference.
189 if (!is_clang) {
190 libs += [ "atomic" ]
191 }
192 }
193
194 config("sdk") {
195 if (sysroot != "") {
196 cflags = [ "--sysroot=" + sysroot ]
197 ldflags = [ "--sysroot=" + sysroot ]
198
199 # Need to get some linker flags out of the sysroot.
200 sysroot_ld_path = rebase_path("//build/config/linux/sysroot_ld_path.py")
201 ldflags += [ exec_script(sysroot_ld_path,
202 [
203 rebase_path("//build/linux/sysroot_ld_path.sh"),
204 sysroot,
205 ],
206 "value") ]
207 }
208 }
209
210 config("executable_config") {
211 cflags = [ "-fPIE" ]
212 ldflags = [ "-pie" ]
213 }
214
215 config("hide_native_jni_exports") {
216 ldflags = [ "-Wl,--version-script=" +
217 rebase_path("//build/android/android_no_jni_exports.lst") ]
218 }
OLDNEW
« no previous file with comments | « no previous file | build/config/android/config.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698