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

variant = "blink"

for_blink = true

_typemap_imports = [
  "//device/gamepad/public/cpp/typemaps.gni",
  "//mojo/public/cpp/bindings/tests/blink_typemaps.gni",
  "//third_party/blink/renderer/platform/mojo/blink_typemaps.gni",
  "//third_party/blink/public/blink_typemaps.gni",
]
_typemaps = []

foreach(typemap_import, _typemap_imports) {
  # Avoid reassignment error by assigning to empty scope first.
  _imported = {
  }
  _imported = read_file(typemap_import, "scope")
  _typemaps += _imported.typemaps
}

typemaps = []
foreach(typemap, _typemaps) {
  typemaps += [
    {
      filename = typemap
      config = read_file(typemap, "scope")
    },
  ]
}

blacklist = []
component_macro_suffix = "_BLINK"
