chromium/third_party/blink/renderer/extensions/extensions.gni

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

import("//third_party/blink/renderer/config.gni")
blink_extensions_output_dir =
    "$root_gen_dir/third_party/blink/renderer/extensions"

# Defines a part of blink extensions_chromeos. This is either a source set or a
# static library with defaults for commonly-used values.
#
#   deps
#      Default deps are automatically appended to any specified on the caller.
#
#   visibility
#      Normal meaning if defined. If undefined, defaults to everything in
# extensions.
template("blink_extensions_chromeos_sources") {
  assert(use_blink_extensions_chromeos)

  if (is_component_build) {
    target_type = "source_set"
  } else {
    target_type = "static_library"
  }

  target(target_type, target_name) {
    # The visibility will get overridden by forward_variables_from below if the
    # invoker defined it.
    visibility = [ "//third_party/blink/renderer/extensions/*" ]

    deps = [
      "//third_party/blink/renderer/core",
      "//third_party/blink/renderer/extensions/chromeos:make_chromeos_generated",
      "//third_party/blink/renderer/modules",
    ]
    if (defined(invoker.deps)) {
      deps += invoker.deps
    }

    # Take everything else not handled above from the invoker.
    forward_variables_from(invoker, "*", [ "deps" ])
  }
}

set_defaults("blink_extensions_chromeos_sources") {
  # This sets the default list of configs when the blink_extensions_chromeos_sources
  # target is defined. The default_compiler_configs comes from BUILDCONFIG.gn
  # and is the list normally applied to static libraries and source sets.
  configs = default_compiler_configs
  configs -= [ "//build/config/compiler:default_symbols" ]
  configs += blink_symbols_config
  configs += [
    "//third_party/blink/renderer:config",
    "//third_party/blink/renderer:non_test_config",
    "//third_party/blink/renderer:inside_blink",
  ]
  configs += [ "//third_party/blink/renderer/extensions/chromeos:extensions_chromeos_implementation" ]
}

# Defines a part of blink extensions_webview. This is either a source set or a
# static library with defaults for commonly-used values.
#
#   deps
#      Default deps are automatically appended to any specified on the caller.
#
#   visibility
#      Normal meaning if defined. If undefined, defaults to everything in
# extensions.
template("blink_extensions_webview_sources") {
  assert(use_blink_extensions_webview)

  if (is_component_build) {
    target_type = "source_set"
  } else {
    target_type = "static_library"
  }

  target(target_type, target_name) {
    # The visibility will get overridden by forward_variables_from below if the
    # invoker defined it.
    visibility = [ "//third_party/blink/renderer/extensions/*" ]

    deps = [
      "//third_party/blink/renderer/core",
      "//third_party/blink/renderer/modules",
    ]
    if (defined(invoker.deps)) {
      deps += invoker.deps
    }

    # Take everything else not handled above from the invoker.
    forward_variables_from(invoker, "*", [ "deps" ])
  }
}

set_defaults("blink_extensions_webview_sources") {
  # This sets the default list of configs when the blink_extensions_webview_sources
  # target is defined. The default_compiler_configs comes from BUILDCONFIG.gn
  # and is the list normally applied to static libraries and source sets.
  configs = default_compiler_configs
  configs -= [ "//build/config/compiler:default_symbols" ]
  configs += blink_symbols_config
  configs += [
    "//third_party/blink/renderer:config",
    "//third_party/blink/renderer:non_test_config",
    "//third_party/blink/renderer:inside_blink",
  ]
  configs += [ "//third_party/blink/renderer/extensions/webview:extensions_webview_implementation" ]
}