OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 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 # ============================================================================= | 5 # ============================================================================= |
6 # WHAT IS THIS FILE? | 6 # WHAT IS THIS FILE? |
7 # ============================================================================= | 7 # ============================================================================= |
8 # | 8 # |
9 # This is the master GN build configuration. This file is loaded after the | 9 # This is the master GN build configuration. This file is loaded after the |
10 # build args (args.gn) for the build directory and after the toplevel ".gn" | 10 # build args (args.gn) for the build directory and after the toplevel ".gn" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 # release (!is_debug). This might be better expressed as a tri-state | 128 # release (!is_debug). This might be better expressed as a tri-state |
129 # (debug, release, official) but for historical reasons there are two | 129 # (debug, release, official) but for historical reasons there are two |
130 # separate flags. | 130 # separate flags. |
131 is_official_build = false | 131 is_official_build = false |
132 | 132 |
133 # Whether we're a traditional desktop unix. | 133 # Whether we're a traditional desktop unix. |
134 is_desktop_linux = current_os == "linux" | 134 is_desktop_linux = current_os == "linux" |
135 | 135 |
136 # Set to true when compiling with the Clang compiler. Typically this is used | 136 # Set to true when compiling with the Clang compiler. Typically this is used |
137 # to configure warnings. | 137 # to configure warnings. |
138 is_clang = current_os == "mac" || current_os == "ios" || | 138 is_clang = |
139 current_os == "linux" || current_os == "chromeos" | 139 current_os == "mac" || current_os == "ios" || current_os == "linux" || |
| 140 current_os == "chromeos" || current_os == "fuchsia" |
140 | 141 |
141 # Allows the path to a custom target toolchain to be injected as a single | 142 # Allows the path to a custom target toolchain to be injected as a single |
142 # argument, and set as the default toolchain. | 143 # argument, and set as the default toolchain. |
143 custom_toolchain = "" | 144 custom_toolchain = "" |
144 | 145 |
145 # This should not normally be set as a build argument. It's here so that | 146 # This should not normally be set as a build argument. It's here so that |
146 # every toolchain can pass through the "global" value via toolchain_args(). | 147 # every toolchain can pass through the "global" value via toolchain_args(). |
147 host_toolchain = "" | 148 host_toolchain = "" |
148 | 149 |
149 # DON'T ADD MORE FLAGS HERE. Read the comment above. | 150 # DON'T ADD MORE FLAGS HERE. Read the comment above. |
150 } | 151 } |
151 | 152 |
152 declare_args() { | 153 declare_args() { |
153 # Debug build. Enabling official builds automatically sets is_debug to false. | 154 # Debug build. Enabling official builds automatically sets is_debug to false. |
154 is_debug = !is_official_build | 155 is_debug = !is_official_build |
155 } | 156 } |
156 | 157 |
157 declare_args() { | 158 declare_args() { |
158 # Component build. Setting to true compiles targets declared as "components" | 159 # Component build. Setting to true compiles targets declared as "components" |
159 # as shared libraries loaded dynamically. This speeds up development time. | 160 # as shared libraries loaded dynamically. This speeds up development time. |
160 # When false, components will be linked statically. | 161 # When false, components will be linked statically. |
161 # | 162 # |
162 # For more information see | 163 # For more information see |
163 # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build
.md | 164 # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build
.md |
164 is_component_build = is_debug && current_os != "ios" | 165 is_component_build = |
| 166 is_debug && current_os != "ios" && current_os != "fuchsia" |
165 } | 167 } |
166 | 168 |
167 assert(!(is_debug && is_official_build), "Can't do official debug builds") | 169 assert(!(is_debug && is_official_build), "Can't do official debug builds") |
168 | 170 |
169 # ============================================================================== | 171 # ============================================================================== |
170 # TOOLCHAIN SETUP | 172 # TOOLCHAIN SETUP |
171 # ============================================================================== | 173 # ============================================================================== |
172 # | 174 # |
173 # Here we set the default toolchain, as well as the variable host_toolchain | 175 # Here we set the default toolchain, as well as the variable host_toolchain |
174 # which will identify the toolchain corresponding to the local system when | 176 # which will identify the toolchain corresponding to the local system when |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 } else { | 224 } else { |
223 _default_toolchain = "//build/toolchain/android:android_$target_cpu" | 225 _default_toolchain = "//build/toolchain/android:android_$target_cpu" |
224 } | 226 } |
225 } else if (target_os == "chromeos" || target_os == "linux") { | 227 } else if (target_os == "chromeos" || target_os == "linux") { |
226 # See comments in build/toolchain/cros/BUILD.gn about board compiles. | 228 # See comments in build/toolchain/cros/BUILD.gn about board compiles. |
227 if (is_clang) { | 229 if (is_clang) { |
228 _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" | 230 _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" |
229 } else { | 231 } else { |
230 _default_toolchain = "//build/toolchain/linux:$target_cpu" | 232 _default_toolchain = "//build/toolchain/linux:$target_cpu" |
231 } | 233 } |
| 234 } else if (target_os == "fuchsia") { |
| 235 _default_toolchain = "//build/toolchain/fuchsia:$target_cpu" |
232 } else if (target_os == "ios") { | 236 } else if (target_os == "ios") { |
233 _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu" | 237 _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu" |
234 } else if (target_os == "mac") { | 238 } else if (target_os == "mac") { |
235 assert(host_os == "mac", "Mac cross-compiles are unsupported.") | 239 assert(host_os == "mac", "Mac cross-compiles are unsupported.") |
236 _default_toolchain = host_toolchain | 240 _default_toolchain = host_toolchain |
237 } else if (target_os == "win") { | 241 } else if (target_os == "win") { |
238 # On Windows we use the same toolchain for host and target by default. | 242 # On Windows we use the same toolchain for host and target by default. |
239 assert(target_os == host_os, "Win cross-compiles only work on win hosts.") | 243 assert(target_os == host_os, "Win cross-compiles only work on win hosts.") |
240 if (is_clang) { | 244 if (is_clang) { |
241 _default_toolchain = "//build/toolchain/win:clang_$target_cpu" | 245 _default_toolchain = "//build/toolchain/win:clang_$target_cpu" |
(...skipping 30 matching lines...) Expand all Loading... |
272 # generally too different despite being based on the Linux kernel). | 276 # generally too different despite being based on the Linux kernel). |
273 # | 277 # |
274 # Do not add more is_* variants here for random lesser-used Unix systems like | 278 # Do not add more is_* variants here for random lesser-used Unix systems like |
275 # aix or one of the BSDs. If you need to check these, just check the | 279 # aix or one of the BSDs. If you need to check these, just check the |
276 # current_os value directly. | 280 # current_os value directly. |
277 | 281 |
278 if (current_os == "win" || current_os == "winrt_81" || | 282 if (current_os == "win" || current_os == "winrt_81" || |
279 current_os == "winrt_81_phone" || current_os == "winrt_10") { | 283 current_os == "winrt_81_phone" || current_os == "winrt_10") { |
280 is_android = false | 284 is_android = false |
281 is_chromeos = false | 285 is_chromeos = false |
| 286 is_fuchsia = false |
282 is_ios = false | 287 is_ios = false |
283 is_linux = false | 288 is_linux = false |
284 is_mac = false | 289 is_mac = false |
285 is_nacl = false | 290 is_nacl = false |
286 is_posix = false | 291 is_posix = false |
287 is_win = true | 292 is_win = true |
288 } else if (current_os == "mac") { | 293 } else if (current_os == "mac") { |
289 is_android = false | 294 is_android = false |
290 is_chromeos = false | 295 is_chromeos = false |
| 296 is_fuchsia = false |
291 is_ios = false | 297 is_ios = false |
292 is_linux = false | 298 is_linux = false |
293 is_mac = true | 299 is_mac = true |
294 is_nacl = false | 300 is_nacl = false |
295 is_posix = true | 301 is_posix = true |
296 is_win = false | 302 is_win = false |
297 } else if (current_os == "android") { | 303 } else if (current_os == "android") { |
298 is_android = true | 304 is_android = true |
299 is_chromeos = false | 305 is_chromeos = false |
| 306 is_fuchsia = false |
300 is_ios = false | 307 is_ios = false |
301 is_linux = false | 308 is_linux = false |
302 is_mac = false | 309 is_mac = false |
303 is_nacl = false | 310 is_nacl = false |
304 is_posix = true | 311 is_posix = true |
305 is_win = false | 312 is_win = false |
306 } else if (current_os == "chromeos") { | 313 } else if (current_os == "chromeos") { |
307 is_android = false | 314 is_android = false |
308 is_chromeos = true | 315 is_chromeos = true |
| 316 is_fuchsia = false |
309 is_ios = false | 317 is_ios = false |
310 is_linux = true | 318 is_linux = true |
311 is_mac = false | 319 is_mac = false |
312 is_nacl = false | 320 is_nacl = false |
313 is_posix = true | 321 is_posix = true |
314 is_win = false | 322 is_win = false |
315 } else if (current_os == "nacl") { | 323 } else if (current_os == "nacl") { |
316 # current_os == "nacl" will be passed by the nacl toolchain definition. | 324 # current_os == "nacl" will be passed by the nacl toolchain definition. |
317 # It is not set by default or on the command line. We treat is as a | 325 # It is not set by default or on the command line. We treat is as a |
318 # Posix variant. | 326 # Posix variant. |
319 is_android = false | 327 is_android = false |
320 is_chromeos = false | 328 is_chromeos = false |
| 329 is_fuchsia = false |
321 is_ios = false | 330 is_ios = false |
322 is_linux = false | 331 is_linux = false |
323 is_mac = false | 332 is_mac = false |
324 is_nacl = true | 333 is_nacl = true |
325 is_posix = true | 334 is_posix = true |
326 is_win = false | 335 is_win = false |
| 336 } else if (current_os == "fuchsia") { |
| 337 is_android = false |
| 338 is_chromeos = false |
| 339 is_fuchsia = true |
| 340 is_ios = false |
| 341 is_linux = false |
| 342 is_mac = false |
| 343 is_nacl = false |
| 344 is_posix = true |
| 345 is_win = false |
327 } else if (current_os == "ios") { | 346 } else if (current_os == "ios") { |
328 is_android = false | 347 is_android = false |
329 is_chromeos = false | 348 is_chromeos = false |
| 349 is_fuchsia = false |
330 is_ios = true | 350 is_ios = true |
331 is_linux = false | 351 is_linux = false |
332 is_mac = false | 352 is_mac = false |
333 is_nacl = false | 353 is_nacl = false |
334 is_posix = true | 354 is_posix = true |
335 is_win = false | 355 is_win = false |
336 } else if (current_os == "linux") { | 356 } else if (current_os == "linux") { |
337 is_android = false | 357 is_android = false |
338 is_chromeos = false | 358 is_chromeos = false |
| 359 is_fuchsia = false |
339 is_ios = false | 360 is_ios = false |
340 is_linux = true | 361 is_linux = true |
341 is_mac = false | 362 is_mac = false |
342 is_nacl = false | 363 is_nacl = false |
343 is_posix = true | 364 is_posix = true |
344 is_win = false | 365 is_win = false |
345 } | 366 } |
346 | 367 |
347 # ============================================================================= | 368 # ============================================================================= |
348 # SOURCES FILTERS | 369 # SOURCES FILTERS |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 set_defaults("component") { | 672 set_defaults("component") { |
652 if (is_component_build) { | 673 if (is_component_build) { |
653 configs = default_shared_library_configs | 674 configs = default_shared_library_configs |
654 if (is_android) { | 675 if (is_android) { |
655 configs -= [ "//build/config/android:hide_all_but_jni_onload" ] | 676 configs -= [ "//build/config/android:hide_all_but_jni_onload" ] |
656 } | 677 } |
657 } else { | 678 } else { |
658 configs = default_compiler_configs | 679 configs = default_compiler_configs |
659 } | 680 } |
660 } | 681 } |
OLD | NEW |