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

import("//build/config/python.gni")
import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/bindings/core/v8/generated.gni")
import("//third_party/blink/renderer/bindings/generated_in_core.gni")
import("//third_party/blink/renderer/bindings/generated_in_modules.gni")
import("//third_party/blink/renderer/bindings/idl_in_core.gni")
import("//third_party/blink/renderer/bindings/idl_in_modules.gni")
import("//third_party/blink/renderer/bindings/modules/v8/generated.gni")
import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/build/scripts/scripts.gni")
import("//third_party/blink/renderer/core/core_idl_files.gni")
import("//third_party/blink/renderer/modules/modules_idl_files.gni")

visibility = [ "//third_party/blink/renderer/*" ]

action("interfaces_info") {
  script = "$bindings_scripts_dir/compute_interfaces_info_overall.py"

  inputs = [
    "$bindings_core_output_dir/interfaces_info_core.pickle",
    "$bindings_modules_output_dir/interfaces_info_modules.pickle",
  ]
  outputs = [ "$bindings_output_dir/interfaces_info.pickle" ]

  args = [
    "--",
    rebase_path("$bindings_core_output_dir/interfaces_info_core.pickle",
                root_build_dir),
    rebase_path("$bindings_modules_output_dir/interfaces_info_modules.pickle",
                root_build_dir),
    rebase_path("$bindings_output_dir/interfaces_info.pickle", root_build_dir),
  ]

  public_deps = [
    "//third_party/blink/renderer/bindings/core:interfaces_info_core",
    "//third_party/blink/renderer/bindings/modules:interfaces_info_modules",
  ]
}

if (use_blink_v8_binding_new_idl_interface) {
  group("global_constructors_idls") {
  }
} else {
  generate_global_constructors("global_constructors_idls") {
    sources =
        core_interface_idl_files_core_only +
        core_interface_idl_files_modules_dependent +
        core_buffer_source_type_idl_files + core_callback_interface_idl_files
    global_objects_file =
        "$bindings_modules_output_dir/global_objects_modules.pickle"
    interfaces = modules_core_global_constructors_original_interfaces
    basenames = modules_core_global_constructors_original_interface_basenames
    component = "core"
    output_dir = blink_modules_output_dir
    deps = [
      "//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
      "//third_party/blink/renderer/bindings/modules:modules_global_objects",
    ]
  }
}

template("collect_idl_files") {
  action_with_pydeps(target_name) {
    script = "${bindings_scripts_dir}/collect_idl_files.py"

    inputs = invoker.inputs
    outputs = [ invoker.output ]

    # List input file names in a temporary file.
    response_file_contents = rebase_path(inputs, root_build_dir)
    args = [
      "--idl_list_file",
      "{{response_file_name}}",
      "--component",
      invoker.component,
      "--output",
      rebase_path(invoker.output, root_build_dir),
    ]
    if (defined(invoker.for_testing) && invoker.for_testing) {
      args += [ "--for_testing" ]
    }

    if (defined(invoker.deps)) {
      deps = invoker.deps
    }
  }
}

collect_idl_files("web_idl_in_core") {
  component = "core"

  inputs = static_idl_files_in_core

  output = "${bindings_output_dir}/web_idl_in_core.pickle"
}

collect_idl_files("web_idl_in_core_for_testing") {
  component = "core"
  for_testing = true

  inputs = static_idl_files_in_core_for_testing
  inputs += get_path_info(
          [
            "$root_gen_dir/third_party/blink/renderer/core/testing/internal_runtime_flags.idl",
            "$root_gen_dir/third_party/blink/renderer/core/testing/internal_settings_generated.idl",
          ],
          "abspath")
  deps = [
    "//third_party/blink/renderer/core:generated_testing_idls_internal_runtime_flags",
    "//third_party/blink/renderer/core:generated_testing_idls_settings",
  ]

  output = "${bindings_output_dir}/web_idl_in_core_for_testing.pickle"
}

collect_idl_files("web_idl_in_modules") {
  component = "modules"

  inputs = static_idl_files_in_modules

  output = "${bindings_output_dir}/web_idl_in_modules.pickle"
}

collect_idl_files("web_idl_in_modules_for_testing") {
  component = "modules"
  for_testing = true

  inputs = static_idl_files_in_modules_for_testing

  output = "${bindings_output_dir}/web_idl_in_modules_for_testing.pickle"
}

action_with_pydeps("web_idl_database") {
  visibility += [ "//tools/privacy_budget/blink_apis:*" ]

  script = "${bindings_scripts_dir}/build_web_idl_database.py"

  input_data_files = get_target_outputs(":web_idl_in_core") +
                     get_target_outputs(":web_idl_in_core_for_testing") +
                     get_target_outputs(":web_idl_in_modules") +
                     get_target_outputs(":web_idl_in_modules_for_testing")
  runtime_enabled_features_file = "../platform/runtime_enabled_features.json5"
  inputs = input_data_files + [ runtime_enabled_features_file ]
  outputs = [ web_idl_database_filepath ]

  args = [
           "--output",
           rebase_path(web_idl_database_filepath, root_build_dir),
           "--runtime_enabled_features",
           rebase_path(runtime_enabled_features_file, root_build_dir),
           "--",
         ] + rebase_path(input_data_files, root_build_dir)

  deps = [
    ":web_idl_in_core",
    ":web_idl_in_core_for_testing",
    ":web_idl_in_modules",
    ":web_idl_in_modules_for_testing",
  ]
}

template("generate_bindings") {
  action_with_pydeps(target_name) {
    script = "${bindings_scripts_dir}/generate_bindings.py"

    if (defined(invoker.pool)) {
      pool = invoker.pool
    }

    web_idl_database_outputs = get_target_outputs(":web_idl_database")
    web_idl_database = web_idl_database_outputs[0]

    inputs = [ web_idl_database ]
    outputs = invoker.outputs

    args = [
             "--web_idl_database",
             rebase_path(web_idl_database, root_build_dir),
             "--root_src_dir",
             rebase_path("//", root_build_dir),
             "--root_gen_dir",
             rebase_path(root_gen_dir, root_build_dir),
             "--output_core_reldir",
             rebase_path("${bindings_output_dir}/core/v8/", root_gen_dir),
             "--output_modules_reldir",
             rebase_path("${bindings_output_dir}/modules/v8/", root_gen_dir),
           ] + invoker.targets

    deps = [ ":web_idl_database" ]
  }
}

generate_bindings("generate_bindings_all") {
  targets = [ "enumeration" ]
  outputs = generated_enumeration_sources_in_core +
            generated_enumeration_sources_in_modules +
            generated_enumeration_sources_for_testing_in_core
  if (use_blink_v8_binding_new_idl_callback_function) {
    targets += [ "callback_function" ]
    outputs += generated_callback_function_sources_in_core +
               generated_callback_function_sources_in_modules +
               generated_callback_function_sources_for_testing_in_core
  }
  if (use_blink_v8_binding_new_idl_callback_interface) {
    targets += [ "callback_interface" ]
    outputs += generated_callback_interface_sources_in_core +
               generated_callback_interface_sources_in_modules
  }
  if (use_blink_v8_binding_new_idl_dictionary) {
    targets += [ "dictionary" ]
    outputs += generated_dictionary_sources_in_core +
               generated_dictionary_sources_in_modules +
               generated_dictionary_sources_for_testing_in_core
  }
  if (use_blink_v8_binding_new_idl_interface) {
    targets += [ "interface" ]
    outputs += generated_interface_sources_in_core +
               generated_interface_sources_in_modules +
               generated_interface_sources_for_testing_in_core +
               generated_interface_sources_for_testing_in_modules
    targets += [ "namespace" ]
    outputs += generated_namespace_sources_in_core +
               generated_namespace_sources_in_modules
  }
}

# Exposes the libraries that affect the resulting blob image of the V8 context
# snapshot.
group("v8_context_snapshot_influential_libs") {
  visibility = []
  visibility = [ "//tools/v8_context_snapshot/*" ]

  public_deps = [
    "//third_party/blink/renderer/core",
    "//third_party/blink/renderer/modules",
    "//third_party/blink/renderer/platform",
  ]
}
