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

Unified Diff: build/config/compiler/BUILD.gn

Issue 1397953002: GN: Fix NaCl IRT build options (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review nit 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | build/config/nacl/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/compiler/BUILD.gn
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 7c2e38028f0b9c17edbed9115ddd0edc996adbda..1a505815a0324b7d5ef110641a168acb073661b5 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -5,6 +5,7 @@
import("//build/config/android/config.gni")
import("//build/config/chrome_build.gni")
import("//build/config/compiler/compiler.gni")
+import("//build/config/nacl/config.gni")
import("//build/toolchain/ccache.gni")
if (current_cpu == "arm") {
@@ -127,6 +128,8 @@ config("compiler") {
configs += [ "//build/config/android:compiler" ]
} else if (is_linux) {
configs += [ "//build/config/linux:compiler" ]
+ } else if (is_nacl) {
+ configs += [ "//build/config/nacl:compiler" ]
} else if (is_ios || is_mac) {
configs += [ "//build/config/mac:compiler" ]
}
@@ -228,16 +231,18 @@ config("compiler") {
]
}
- # Omit unwind support in official builds to save space. We can use breakpad
- # for these builds.
- if (is_chrome_branded && is_official_build) {
- cflags += [
- "-fno-unwind-tables",
- "-fno-asynchronous-unwind-tables",
- ]
- defines += [ "NO_UNWIND_TABLES" ]
- } else {
- cflags += [ "-funwind-tables" ]
+ if (!is_nacl) {
+ # Omit unwind support in official builds to save space.
+ # We can use breakpad for these builds.
+ if (is_chrome_branded && is_official_build) {
+ cflags += [
+ "-fno-unwind-tables",
+ "-fno-asynchronous-unwind-tables",
+ ]
+ defines += [ "NO_UNWIND_TABLES" ]
+ } else {
+ cflags += [ "-funwind-tables" ]
+ }
}
}
@@ -440,9 +445,12 @@ config("compiler_cpu_abi") {
# for particular Chromium code or for working around particular
# compiler bugs (or the combination of the two).
config("compiler_codegen") {
+ configs = []
cflags = []
- if (is_posix && !is_mac && !is_ios && !is_nacl) {
+ if (is_nacl) {
+ configs += [ "//build/config/nacl:compiler_codegen" ]
+ } else if (is_posix && !is_mac && !is_ios) {
if (current_cpu == "x86") {
if (is_clang) {
cflags += [
@@ -1055,34 +1063,50 @@ config("no_optimize") {
# optimization and link-time code generation which is very expensive and should
# be used sparingly.
config("optimize_max") {
- ldflags = common_optimize_on_ldflags
- if (is_win) {
- # Favor speed over size, /O2 must be before the common flags. The GYP
- # build also specifies /Ot, /Oi, and /GF, but these are implied by /O2.
- cflags = [ "/O2" ] + common_optimize_on_cflags
- if (is_official_build) {
- # TODO(GYP): TODO(dpranke): Should these only be on in an official
- # build, or on all the time? For now we'll require official build so
- # that the compile is clean.
- cflags += [
- "/GL", # Whole program optimization.
+ if (is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+ # if (!is_debug) {
+ # configs -= [ "//build/config/compiler:default_optimization" ]
+ # configs += [ "//build/config/compiler:optimize_max" ]
+ # }
+ # So this config has to have the selection logic just like
+ # "default_optimization", below.
+ configs = [ "//build/config/nacl:irt_optimize" ]
+ } else {
+ ldflags = common_optimize_on_ldflags
+ if (is_win) {
+ # Favor speed over size, /O2 must be before the common flags. The GYP
+ # build also specifies /Ot, /Oi, and /GF, but these are implied by /O2.
+ cflags = [ "/O2" ] + common_optimize_on_cflags
+ if (is_official_build) {
+ # TODO(GYP): TODO(dpranke): Should these only be on in an official
+ # build, or on all the time? For now we'll require official build so
+ # that the compile is clean.
+ cflags += [
+ "/GL", # Whole program optimization.
- # Disable Warning 4702 ("Unreachable code") for the WPO/PGO builds.
- # Probably anything that this would catch that wouldn't be caught in a
- # normal build isn't going to actually be a bug, so the incremental
- # value of C4702 for PGO builds is likely very small.
- "/wd4702",
- ]
+ # Disable Warning 4702 ("Unreachable code") for the WPO/PGO builds.
+ # Probably anything that this would catch that wouldn't be caught in a
+ # normal build isn't going to actually be a bug, so the incremental
+ # value of C4702 for PGO builds is likely very small.
+ "/wd4702",
+ ]
+ }
+ } else {
+ cflags = [ "-O2" ] + common_optimize_on_cflags
}
- } else {
- cflags = [ "-O2" ] + common_optimize_on_cflags
}
}
# The default optimization applied to all targets. This will be equivalent to
# either "optimize" or "no_optimize", depending on the build flags.
config("default_optimization") {
- if (is_debug) {
+ if (is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # It gets optimized the same way regardless of the type of build.
+ configs = [ "//build/config/nacl:irt_optimize" ]
+ } else if (is_debug) {
configs = [ ":no_optimize" ]
} else {
configs = [ ":optimize" ]
« no previous file with comments | « no previous file | build/config/nacl/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698