chromium/third_party/blink/renderer/platform/platform.gni

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

platform_config_add = [
  "//third_party/blink/renderer:config",
  "//third_party/blink/renderer:inside_blink",
  "//third_party/blink/renderer:non_test_config",
  "//third_party/blink/renderer/platform:blink_platform_config",
  "//third_party/blink/renderer/platform:blink_platform_implementation",
  "//third_party/blink/renderer/platform:blink_platform_pch",
]
platform_config_remove = []

template("blink_platform_sources") {
  source_set(target_name) {
    # Only platform can directly depend on this.
    # Any target outside platform should instead depend on platform.
    visibility = [ "//third_party/blink/renderer/platform/*" ]

    deps =
        [ "//third_party/blink/renderer/platform:blink_platform_public_deps" ]
    if (defined(invoker.deps)) {
      deps += invoker.deps
    }

    assert(
        !defined(invoker.public_configs),
        "$target_name's public_configs should be moved to //third_party/blink/renderer/platform:blink_platform_public_deps")
    assert(
        !defined(invoker.all_dependent_configs),
        "$target_name's all_dependent_configs should be moved to //third_party/blink/renderer/platform:blink_platform_public_deps")
    configs = []
    if (defined(invoker.configs)) {
      configs += invoker.configs
    }

    forward_variables_from(invoker,
                           "*",
                           [
                             "deps",
                             "configs",
                           ])
  }
}

set_defaults("blink_platform_sources") {
  configs =
      default_compiler_configs + platform_config_add - platform_config_remove
}