Chromium Code Reviews| 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 import("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 import("//build/config/chrome_build.gni") | 6 import("//build/config/chrome_build.gni") |
| 7 import("//build/config/compiler/compiler.gni") | 7 import("//build/config/compiler/compiler.gni") |
| 8 import("//build/config/nacl/config.gni") | 8 import("//build/config/nacl/config.gni") |
| 9 import("//build/toolchain/cc_wrapper.gni") | 9 import("//build/toolchain/cc_wrapper.gni") |
| 10 import("//build/toolchain/toolchain.gni") | 10 import("//build/toolchain/toolchain.gni") |
| (...skipping 1381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1392 # value of C4702 for PGO builds is likely very small. | 1392 # value of C4702 for PGO builds is likely very small. |
| 1393 "/wd4702", | 1393 "/wd4702", |
| 1394 ] | 1394 ] |
| 1395 } | 1395 } |
| 1396 } else { | 1396 } else { |
| 1397 cflags = [ "-O2" ] + common_optimize_on_cflags | 1397 cflags = [ "-O2" ] + common_optimize_on_cflags |
| 1398 } | 1398 } |
| 1399 } | 1399 } |
| 1400 } | 1400 } |
| 1401 | 1401 |
| 1402 # This config can be used to override the default settings for per-component | |
| 1403 # and whole-program optimization, optimizing the particular target for speed | |
| 1404 # instead of code size. This config is exactly the same as "optimize_max" | |
| 1405 # except that we use -O3 instead of -O2 on non-win, non-IRT platforms. | |
| 1406 # | |
| 1407 # TODO(crbug.com/621335) - rework how all of these configs are related | |
| 1408 # so that we don't need this disclaimer. | |
| 1409 config("optimize_speed") { | |
|
Nico
2016/06/21 18:10:37
bikeshed: I think it'd be good if the name contain
| |
| 1410 if (is_nacl_irt) { | |
| 1411 # The NaCl IRT is a special case and always wants its own config. | |
| 1412 # Various components do: | |
| 1413 # if (!is_debug) { | |
| 1414 # configs -= [ "//build/config/compiler:default_optimization" ] | |
| 1415 # configs += [ "//build/config/compiler:optimize_max" ] | |
| 1416 # } | |
| 1417 # So this config has to have the selection logic just like | |
| 1418 # "default_optimization", below. | |
| 1419 configs = [ "//build/config/nacl:irt_optimize" ] | |
| 1420 } else { | |
| 1421 ldflags = common_optimize_on_ldflags | |
| 1422 if (is_win) { | |
| 1423 # Favor speed over size, /O2 must be before the common flags. The GYP | |
| 1424 # build also specifies /Ot, /Oi, and /GF, but these are implied by /O2. | |
| 1425 cflags = [ "/O2" ] + common_optimize_on_cflags | |
| 1426 | |
| 1427 # TODO(thakis): Remove is_clang here, https://crbug.com/598772 | |
| 1428 if (is_official_build && !is_clang) { | |
| 1429 cflags += [ | |
| 1430 "/GL", # Whole program optimization. | |
| 1431 | |
| 1432 # Disable Warning 4702 ("Unreachable code") for the WPO/PGO builds. | |
| 1433 # Probably anything that this would catch that wouldn't be caught in a | |
| 1434 # normal build isn't going to actually be a bug, so the incremental | |
| 1435 # value of C4702 for PGO builds is likely very small. | |
| 1436 "/wd4702", | |
| 1437 ] | |
|
Nico
2016/06/21 18:10:37
this is a lot of copy-pasta :-/
| |
| 1438 } | |
| 1439 } else { | |
| 1440 cflags = [ "-O3" ] + common_optimize_on_cflags | |
| 1441 } | |
| 1442 } | |
| 1443 } | |
| 1444 | |
| 1402 # The default optimization applied to all targets. This will be equivalent to | 1445 # The default optimization applied to all targets. This will be equivalent to |
| 1403 # either "optimize" or "no_optimize", depending on the build flags. | 1446 # either "optimize" or "no_optimize", depending on the build flags. |
| 1404 config("default_optimization") { | 1447 config("default_optimization") { |
| 1405 if (is_nacl_irt) { | 1448 if (is_nacl_irt) { |
| 1406 # The NaCl IRT is a special case and always wants its own config. | 1449 # The NaCl IRT is a special case and always wants its own config. |
| 1407 # It gets optimized the same way regardless of the type of build. | 1450 # It gets optimized the same way regardless of the type of build. |
| 1408 configs = [ "//build/config/nacl:irt_optimize" ] | 1451 configs = [ "//build/config/nacl:irt_optimize" ] |
| 1409 } else if (is_debug) { | 1452 } else if (is_debug) { |
| 1410 configs = [ ":no_optimize" ] | 1453 configs = [ ":no_optimize" ] |
| 1411 } else { | 1454 } else { |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1501 | 1544 |
| 1502 if (is_ios || is_mac) { | 1545 if (is_ios || is_mac) { |
| 1503 # On Mac and iOS, this enables support for ARC (automatic ref-counting). | 1546 # On Mac and iOS, this enables support for ARC (automatic ref-counting). |
| 1504 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. | 1547 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. |
| 1505 config("enable_arc") { | 1548 config("enable_arc") { |
| 1506 common_flags = [ "-fobjc-arc" ] | 1549 common_flags = [ "-fobjc-arc" ] |
| 1507 cflags_objc = common_flags | 1550 cflags_objc = common_flags |
| 1508 cflags_objcc = common_flags | 1551 cflags_objcc = common_flags |
| 1509 } | 1552 } |
| 1510 } | 1553 } |
| OLD | NEW |