# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("config.gni")
if (is_clang) {
  import("//build/config/clang/clang.gni")
}

visibility = [ "//third_party/WebKit/*" ]

# features ---------------------------------------------------------------------

config("features") {
  defines = feature_defines_list
}

# inside_blink -----------------------------------------------------------------

config("inside_blink") {
  defines = [
    "BLINK_IMPLEMENTATION=1",
    "INSIDE_BLINK",
  ]
}

# config -----------------------------------------------------------------------

config("config") {
  include_dirs = [ ".", ".." ]

  cflags = []
  defines = []

  if (is_win) {
    cflags += [
      "/wd4305",  # Truncation from 'type1' to 'type2'.
      "/wd4324",  # Struct padded due to declspec(align).
      "/wd4714",  # Function marked forceinline not inlined.
      "/wd4800",  # Value forced to bool.
      "/wd4996",  # Deprecated function call.
    ]
  }

  if (is_win) {
    if (component_mode == "shared_library") {
      defines += [ "USING_V8_SHARED" ]
    }
  } else {  # ! Windows
    # TODO(GYP) this should be based on gcc_version >= 46 but GN doesn't have a
    # concept of GCC version yet.

    # Disable warnings about c++0x compatibility, as some names (such as
    # nullptr) conflict with upcoming c++0x types.
    cflags_cc = [ "-Wno-c++0x-compat" ]
  }

  if (is_linux && cpu_arch == "arm") {
    # Due to a bug in gcc arm, we get warnings about uninitialized
    # timesNewRoman.unstatic.3258 and colorTransparent.unstatic.4879.
    cflags += [ "-Wno-uninitialized" ]
  }

  if (is_clang) {
    if (blink_gc_plugin && clang_use_chrome_plugins) {
      # TODO(GYP)
      #'cflags': ['<!@(../../../tools/clang/scripts/blink_gc_plugin_flags.sh enable-oilpan=<(enable_oilpan) dump-graph=<(blink_gc_plugin_dump_graph))'],
    }
  }
}

# The follow configs apply to all targets except for unit tests, which rely on
# static initializers.
config("non_test_config") {
  cflags = []

  if (is_clang) {
    cflags += [ "-Wglobal-constructors" ]
  }
}