# 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("//build/config/python.gni")
import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/build/scripts/scripts.gni")
import("//third_party/blink/renderer/config.gni")
import("//third_party/blink/renderer/extensions/extensions.gni")
assert(use_blink_extensions_chromeos)
visibility = [
"//third_party/blink/renderer/bindings/extensions/*",
"//third_party/blink/renderer/extensions/*",
]
config("extensions_chromeos_implementation") {
visibility += [ "//third_party/blink/renderer/bindings/extensions/*" ]
defines = [ "BLINK_EXTENSIONS_CHROMEOS_IMPLEMENTATION=1" ]
}
component("chromeos") {
output_name = "blink_extensions_chromeos"
visibility = [] # Allow re-assignment of list.
visibility = [ "//third_party/blink/*" ]
sources = [
"chromeos.cc",
"chromeos.h",
"chromeos_extensions.cc",
"chromeos_extensions.h",
"extensions_chromeos_export.h",
]
# This sets the default list of configs when the blink_modules_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 += [
":extensions_chromeos_implementation",
"//third_party/blink/renderer:config",
"//third_party/blink/renderer:non_test_config",
"//third_party/blink/renderer:inside_blink",
]
deps = [
":chromeos_generated",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/extensions/chromeos/diagnostics",
"//third_party/blink/renderer/extensions/chromeos/kiosk",
"//third_party/blink/renderer/modules",
]
public_deps =
[ "//third_party/blink/renderer/bindings/extensions/v8:v8_chromeos" ]
}
group("make_chromeos_generated") {
public_deps = [
":make_chromeos_generated_event_names",
":make_chromeos_generated_event_target_names",
":make_chromeos_generated_event_type_names",
]
}
blink_chromeos_extensions_output_dir = "$blink_extensions_output_dir/chromeos"
# generate_event_interfaces ----------------------------------------------------
action_with_pydeps("chromeos_event_interfaces") {
script = "//third_party/blink/renderer/bindings/scripts/generate_event_interface_names.py"
inputs = [ web_idl_database_filepath ]
outputs = [ get_path_info(".", "gen_dir") +
"/event_interface_chromeos_names.json5" ]
args = [
"--web_idl_database",
rebase_path(web_idl_database_filepath, root_build_dir),
"--component",
"extensions_chromeos",
"--export-macro",
"EXTENSIONS_CHROMEOS_EXPORT",
"--suffix",
"ChromeOS",
"--output",
rebase_path(outputs[0], root_build_dir),
]
deps = [ "//third_party/blink/renderer/bindings:web_idl_database" ]
}
# make_names -------------------------------------------------------------------
make_names("make_chromeos_generated_event_target_names") {
in_files = [ "event_target_chromeos_names.json5" ]
output_dir = blink_chromeos_extensions_output_dir
}
make_names("make_chromeos_generated_event_names") {
in_files = [ "$blink_chromeos_extensions_output_dir/event_interface_chromeos_names.json5" ]
output_dir = blink_chromeos_extensions_output_dir
deps = make_core_generated_deps + [ ":chromeos_event_interfaces" ]
}
make_names("make_chromeos_generated_event_type_names") {
in_files = [ "event_type_chromeos_names.json5" ]
output_dir = blink_chromeos_extensions_output_dir
}
blink_extensions_chromeos_sources("chromeos_generated") {
# Targets from above that generate outputs that need to be compiled.
# All sources declared as outputs from these targets will be compiled
# into one target.
targets_generating_sources = [
":make_chromeos_generated_event_names",
":make_chromeos_generated_event_target_names",
":make_chromeos_generated_event_type_names",
]
sources = []
foreach(current, targets_generating_sources) {
sources += get_target_outputs(current)
}
}