# 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.

# GYP version: webkit/common/webkit_common.gyp:webkit_common
component("common") {
  output_name = "webkit_common"

  sources = [
    "data_element.cc",
    "data_element.h",
    "resource_type.cc",
    "resource_type.h",
    "webkit_common_export.h",
    "webpreferences.cc",
    "webpreferences.h",
  ]

  defines = [ "WEBKIT_COMMON_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//net",
    "//skia",
    "//third_party/icu",
    "//third_party/WebKit/public:blink_headers",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
    "//url",
    "//webkit:resources",
  ]
  forward_dependent_configs_from = [
    "//third_party/WebKit/public:blink_headers",
  ]
}

component("storage") {
  output_name = "webkit_storage_common"
  sources = [
    "webkit_storage_common_export.h",
    "appcache/appcache_interfaces.cc",
    "appcache/appcache_interfaces.h",
    "blob/blob_data.cc",
    "blob/blob_data.h",
    "blob/scoped_file.cc",
    "blob/scoped_file.h",
    "blob/shareable_file_reference.cc",
    "blob/shareable_file_reference.h",
    "database/database_connections.cc",
    "database/database_connections.h",
    "database/database_identifier.cc",
    "database/database_identifier.h",
    "fileapi/directory_entry.cc",
    "fileapi/directory_entry.h",
    "fileapi/file_system_info.cc",
    "fileapi/file_system_info.h",
    "fileapi/file_system_mount_option.h",
    "fileapi/file_system_types.h",
    "fileapi/file_system_util.cc",
    "fileapi/file_system_util.h",
    "quota/quota_status_code.cc",
    "quota/quota_status_code.h",
    "quota/quota_types.h",
  ]

  defines = [ "WEBKIT_STORAGE_COMMON_IMPLEMENTATION" ]
  if (is_win) {
    cflags = [ "/wd4267" ]  # TODO(jschuh): fix size_t to int truncations.
  }

  deps = [
    ":common",
    "//base",
    "//base/third_party/dynamic_annotations",
    "//net",
    "//url",
  ]
}
