| 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/toolchain/ccache.gni") | 8 import("//build/toolchain/ccache.gni") |
| 9 | 9 |
| 10 if (current_cpu == "arm") { | 10 if (current_cpu == "arm") { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 defines = [] | 103 defines = [] |
| 104 configs = [] | 104 configs = [] |
| 105 | 105 |
| 106 # System-specific flags. If your compiler flags apply to one of the | 106 # System-specific flags. If your compiler flags apply to one of the |
| 107 # categories here, add it to the associated file to keep this shared config | 107 # categories here, add it to the associated file to keep this shared config |
| 108 # smaller. | 108 # smaller. |
| 109 if (is_win) { | 109 if (is_win) { |
| 110 configs += [ "//build/config/win:compiler" ] | 110 configs += [ "//build/config/win:compiler" ] |
| 111 } else if (is_android) { | 111 } else if (is_android) { |
| 112 configs += [ "//build/config/android:compiler" ] | 112 configs += [ "//build/config/android:compiler" ] |
| 113 } else if (is_linux) { |
| 114 configs += [ "//build/config/linux:compiler" ] |
| 113 } | 115 } |
| 114 | 116 |
| 115 # In general, Windows is totally different, but all the other builds share | 117 # In general, Windows is totally different, but all the other builds share |
| 116 # some common GCC configuration. | 118 # some common GCC configuration. |
| 117 if (!is_win) { | 119 if (!is_win) { |
| 118 # Common GCC compiler flags setup. | 120 # Common GCC compiler flags setup. |
| 119 # -------------------------------- | 121 # -------------------------------- |
| 120 cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204 | 122 cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204 |
| 121 cflags_cc += [ | 123 cflags_cc += [ |
| 122 "-fno-threadsafe-statics", | 124 "-fno-threadsafe-statics", |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 # This is here so that all files get recompiled after a clang roll and | 167 # This is here so that all files get recompiled after a clang roll and |
| 166 # when turning clang on or off. (defines are passed via the command line, | 168 # when turning clang on or off. (defines are passed via the command line, |
| 167 # and build system rebuild things when their commandline changes). Nothing | 169 # and build system rebuild things when their commandline changes). Nothing |
| 168 # should ever read this define. | 170 # should ever read this define. |
| 169 defines += | 171 defines += |
| 170 [ "CR_CLANG_REVISION=" + exec_script("//tools/clang/scripts/update.py", | 172 [ "CR_CLANG_REVISION=" + exec_script("//tools/clang/scripts/update.py", |
| 171 [ "--print-revision" ], | 173 [ "--print-revision" ], |
| 172 "trim string") ] | 174 "trim string") ] |
| 173 } | 175 } |
| 174 | 176 |
| 175 # Mac-specific compiler flags setup. | 177 # Non-Mac Posix compiler flags setup. |
| 176 # ---------------------------------- | 178 # ----------------------------------- |
| 177 if (is_mac || is_ios) { | 179 if (is_posix && !(is_mac || is_ios)) { |
| 178 # These flags are shared between the C compiler and linker. | |
| 179 common_mac_flags = [] | |
| 180 | |
| 181 # CPU architecture. | |
| 182 if (current_cpu == "x64") { | |
| 183 common_mac_flags += [ | |
| 184 "-arch", | |
| 185 "x86_64", | |
| 186 ] | |
| 187 } else if (current_cpu == "x86") { | |
| 188 common_mac_flags += [ | |
| 189 "-arch", | |
| 190 "i386", | |
| 191 ] | |
| 192 } else if (current_cpu == "arm") { | |
| 193 # TODO(GYP): we may need to distinguish between "arm64", "armv7", | |
| 194 # and "armv7s" for iOS, and hence need multiple current_cpu values | |
| 195 # rather than just "arm". | |
| 196 common_mac_flags += [ | |
| 197 "-arch", | |
| 198 "arm64", | |
| 199 ] | |
| 200 } | |
| 201 | |
| 202 cflags += common_mac_flags | |
| 203 | |
| 204 # Without this, the constructors and destructors of a C++ object inside | |
| 205 # an Objective C struct won't be called, which is very bad. | |
| 206 cflags_objcc += [ "-fobjc-call-cxx-cdtors" ] | |
| 207 | |
| 208 cflags_c += [ "-std=c99" ] | |
| 209 | |
| 210 ldflags += common_mac_flags | |
| 211 } else if (is_posix) { | |
| 212 # Non-Mac Posix compiler flags setup. | |
| 213 # ----------------------------------- | |
| 214 if (enable_profiling && !is_debug) { | 180 if (enable_profiling && !is_debug) { |
| 215 # The GYP build spams this define into every compilation unit, as we do | 181 # The GYP build spams this define into every compilation unit, as we do |
| 216 # here, but it only appears to be used in base and a couple other places. | 182 # here, but it only appears to be used in base and a couple other places. |
| 217 # TODO(abarth): Should we move this define closer to where it's used? | 183 # TODO(abarth): Should we move this define closer to where it's used? |
| 218 defines += [ "ENABLE_PROFILING" ] | 184 defines += [ "ENABLE_PROFILING" ] |
| 219 | 185 |
| 220 cflags += [ | 186 cflags += [ |
| 221 "-fno-omit-frame-pointer", | 187 "-fno-omit-frame-pointer", |
| 222 "-g", | 188 "-g", |
| 223 ] | 189 ] |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 "-Wl,-z,now", | 350 "-Wl,-z,now", |
| 385 "-Wl,-z,relro", | 351 "-Wl,-z,relro", |
| 386 ] | 352 ] |
| 387 if (!using_sanitizer && !use_cfi_diag) { | 353 if (!using_sanitizer && !use_cfi_diag) { |
| 388 ldflags += [ "-Wl,-z,defs" ] | 354 ldflags += [ "-Wl,-z,defs" ] |
| 389 } | 355 } |
| 390 } | 356 } |
| 391 | 357 |
| 392 # Linux-specific compiler flags setup. | 358 # Linux-specific compiler flags setup. |
| 393 # ------------------------------------ | 359 # ------------------------------------ |
| 394 if (is_linux) { | |
| 395 cflags += [ "-pthread" ] | |
| 396 ldflags += [ "-pthread" ] | |
| 397 } | |
| 398 if (use_gold) { | 360 if (use_gold) { |
| 399 ldflags += [ | 361 ldflags += [ |
| 400 "-B$gold_path", | 362 "-B$gold_path", |
| 401 | 363 |
| 402 # Newer gccs and clangs support -fuse-ld, use the flag to force gold | 364 # Newer gccs and clangs support -fuse-ld, use the flag to force gold |
| 403 # selection. | 365 # selection. |
| 404 # gcc -- http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html | 366 # gcc -- http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html |
| 405 "-fuse-ld=gold", | 367 "-fuse-ld=gold", |
| 406 | 368 |
| 407 # Experimentation found that using four linking threads | 369 # Experimentation found that using four linking threads |
| (...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1151 if (symbol_level == 0) { | 1113 if (symbol_level == 0) { |
| 1152 configs = [ ":no_symbols" ] | 1114 configs = [ ":no_symbols" ] |
| 1153 } else if (symbol_level == 1) { | 1115 } else if (symbol_level == 1) { |
| 1154 configs = [ ":minimal_symbols" ] | 1116 configs = [ ":minimal_symbols" ] |
| 1155 } else if (symbol_level == 2) { | 1117 } else if (symbol_level == 2) { |
| 1156 configs = [ ":symbols" ] | 1118 configs = [ ":symbols" ] |
| 1157 } else { | 1119 } else { |
| 1158 assert(false) | 1120 assert(false) |
| 1159 } | 1121 } |
| 1160 } | 1122 } |
| OLD | NEW |