110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Copyright 2014 The Chromium Authors. All rights reserved.
210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# Use of this source code is governed by a BSD-style license that can be
310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# found in the LICENSE file.
410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochimport("config.gni")
610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochif (is_clang) {
710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  import("//build/config/clang/clang.gni")
810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch}
910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
107242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccivisibility = [ "//third_party/WebKit/*" ]
1176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
1210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# features ---------------------------------------------------------------------
1310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
1410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochconfig("features") {
15d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)  defines = feature_defines_list
16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)}
1710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)# inside_blink -----------------------------------------------------------------
1910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
20d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)config("inside_blink") {
21d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)  defines = [
22d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    "BLINK_IMPLEMENTATION=1",
23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    "INSIDE_BLINK",
24d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)  ]
2510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch}
2610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
2710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch# config -----------------------------------------------------------------------
2810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
2910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdochconfig("config") {
3010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  include_dirs = [ ".", ".." ]
3110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
3210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  cflags = []
3310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  defines = []
3410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
3510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  if (is_win) {
3610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    cflags += [
3710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      "/wd4305",  # Truncation from 'type1' to 'type2'.
3810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      "/wd4324",  # Struct padded due to declspec(align).
3910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      "/wd4714",  # Function marked forceinline not inlined.
40f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)      "/wd4800",  # Value forced to bool.
4110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      "/wd4996",  # Deprecated function call.
4210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    ]
4310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  }
4410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
4510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  if (is_win) {
4610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    if (component_mode == "shared_library") {
4710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      defines += [ "USING_V8_SHARED" ]
4810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    }
4910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  } else {  # ! Windows
5010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # TODO(GYP) this should be based on gcc_version >= 46 but GN doesn't have a
5110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # concept of GCC version yet.
5210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
5310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # Disable warnings about c++0x compatibility, as some names (such as
5410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # nullptr) conflict with upcoming c++0x types.
5510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    cflags_cc = [ "-Wno-c++0x-compat" ]
5610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  }
5710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
5810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  if (is_linux && cpu_arch == "arm") {
5910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # Due to a bug in gcc arm, we get warnings about uninitialized
6010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    # timesNewRoman.unstatic.3258 and colorTransparent.unstatic.4879.
6110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    cflags += [ "-Wno-uninitialized" ]
6210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  }
6310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch
6410f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  if (is_clang) {
6510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    if (blink_gc_plugin && clang_use_chrome_plugins) {
6610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      # TODO(GYP)
6710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch      #'cflags': ['<!@(../../../tools/clang/scripts/blink_gc_plugin_flags.sh enable-oilpan=<(enable_oilpan) dump-graph=<(blink_gc_plugin_dump_graph))'],
6810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch    }
6910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch  }
7010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch}
71d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
72f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)# The follow configs apply to all targets except for unit tests, which rely on
73f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)# static initializers.
74f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)config("non_test_config") {
75f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)  cflags = []
76f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
77f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)  if (is_clang) {
78f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    cflags += [ "-Wglobal-constructors" ]
79f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)  }
80f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)}
81