# Copyright 2014 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("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/build/scripts/scripts.gni")
import("//third_party/blink/renderer/modules/modules.gni")

group("bindings_modules_generated") {
  visibility = [ "//third_party/blink/*" ]
  public_deps = [
    ":event_modules",
    ":event_modules_names",
    ":event_target_modules_names",
    ":modules_bindings_generated_event_interfaces",
  ]
}

generate_event_interfaces("modules_bindings_generated_event_interfaces") {
  sources = [
    "//third_party/blink/renderer/modules/app_banner/before_install_prompt_event.idl",
    "//third_party/blink/renderer/modules/background_fetch/background_fetch_event.idl",
    "//third_party/blink/renderer/modules/background_fetch/background_fetch_update_ui_event.idl",
    "//third_party/blink/renderer/modules/background_sync/periodic_sync_event.idl",
    "//third_party/blink/renderer/modules/background_sync/sync_event.idl",
    "//third_party/blink/renderer/modules/content_index/content_index_event.idl",
    "//third_party/blink/renderer/modules/cookie_store/cookie_change_event.idl",
    "//third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.idl",
    "//third_party/blink/renderer/modules/device_orientation/device_motion_event.idl",
    "//third_party/blink/renderer/modules/device_orientation/device_orientation_event.idl",
    "//third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl",
    "//third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl",
    "//third_party/blink/renderer/modules/gamepad/gamepad_axis_event.idl",
    "//third_party/blink/renderer/modules/gamepad/gamepad_button_event.idl",
    "//third_party/blink/renderer/modules/gamepad/gamepad_event.idl",
    "//third_party/blink/renderer/modules/hid/hid_connection_event.idl",
    "//third_party/blink/renderer/modules/hid/hid_input_report_event.idl",
    "//third_party/blink/renderer/modules/indexeddb/idb_version_change_event.idl",
    "//third_party/blink/renderer/modules/mediarecorder/blob_event.idl",
    "//third_party/blink/renderer/modules/mediastream/media_stream_event.idl",
    "//third_party/blink/renderer/modules/mediastream/media_stream_track_event.idl",
    "//third_party/blink/renderer/modules/nfc/ndef_reading_event.idl",
    "//third_party/blink/renderer/modules/notifications/notification_event.idl",
    "//third_party/blink/renderer/modules/payments/abort_payment_event.idl",
    "//third_party/blink/renderer/modules/payments/can_make_payment_event.idl",
    "//third_party/blink/renderer/modules/payments/merchant_validation_event.idl",
    "//third_party/blink/renderer/modules/payments/payment_method_change_event.idl",
    "//third_party/blink/renderer/modules/payments/payment_request_details_update.idl",
    "//third_party/blink/renderer/modules/payments/payment_request_event.idl",
    "//third_party/blink/renderer/modules/payments/payment_request_update_event.idl",
    "//third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event.idl",
    "//third_party/blink/renderer/modules/peerconnection/rtc_dtmf_tone_change_event.idl",
    "//third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_error_event.idl",
    "//third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.idl",
    "//third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.idl",
    "//third_party/blink/renderer/modules/presentation/presentation_connection_available_event.idl",
    "//third_party/blink/renderer/modules/presentation/presentation_connection_close_event.idl",
    "//third_party/blink/renderer/modules/push_messaging/push_event.idl",
    "//third_party/blink/renderer/modules/sensor/sensor_error_event.idl",
    "//third_party/blink/renderer/modules/service_worker/extendable_event.idl",
    "//third_party/blink/renderer/modules/service_worker/extendable_message_event.idl",
    "//third_party/blink/renderer/modules/service_worker/fetch_event.idl",
    "//third_party/blink/renderer/modules/service_worker/install_event.idl",
    "//third_party/blink/renderer/modules/speech/speech_recognition_error_event.idl",
    "//third_party/blink/renderer/modules/speech/speech_recognition_event.idl",
    "//third_party/blink/renderer/modules/speech/speech_synthesis_error_event.idl",
    "//third_party/blink/renderer/modules/speech/speech_synthesis_event.idl",
    "//third_party/blink/renderer/modules/storage/storage_event.idl",
    "//third_party/blink/renderer/modules/webaudio/audio_processing_event.idl",
    "//third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.idl",
    "//third_party/blink/renderer/modules/webgl/webgl_context_event.idl",
    "//third_party/blink/renderer/modules/webmidi/midi_connection_event.idl",
    "//third_party/blink/renderer/modules/webmidi/midi_message_event.idl",
    "//third_party/blink/renderer/modules/websockets/close_event.idl",
    "//third_party/blink/renderer/modules/xr/xr_input_source_event.idl",
    "//third_party/blink/renderer/modules/xr/xr_input_sources_change_event.idl",
    "//third_party/blink/renderer/modules/xr/xr_reference_space_event.idl",
    "//third_party/blink/renderer/modules/xr/xr_session_event.idl",
  ]

  output_file = "modules/event_interface_modules_names.json5"
  suffix = "Modules"
}

make_event_factory("event_modules") {
  visibility = [ ":*" ]
  in_files = [ "$blink_modules_output_dir/event_interface_modules_names.json5" ]
  outputs = [ "$blink_modules_output_dir/event_modules_factory.cc" ]
  deps = make_core_generated_deps + [ "//third_party/blink/renderer/bindings/modules:modules_bindings_generated_event_interfaces" ]
}

make_names("event_modules_names") {
  visibility = [ ":*" ]
  in_files = [ "$blink_modules_output_dir/event_interface_modules_names.json5" ]
  output_dir = blink_modules_output_dir
  deps = make_core_generated_deps + [ "//third_party/blink/renderer/bindings/modules:modules_bindings_generated_event_interfaces" ]
}

make_names("event_target_modules_names") {
  visibility = [ ":*" ]
  in_files = [ "../../modules/event_target_modules_names.json5" ]
  output_dir = blink_modules_output_dir
}

# ------------------------------------------------------------------------------

compute_interfaces_info("interfaces_info_modules") {
  sources = modules_static_interface_idl_files + modules_definition_idl_files +
            modules_static_dependency_idl_files +
            modules_generated_dependency_idl_files

  interfaces_info_file =
      "$bindings_modules_output_dir/interfaces_info_modules.pickle"
  component_info_file =
      "$bindings_modules_output_dir/component_info_modules.pickle"
  deps = [
    ":modules_global_constructors_idls",
    "//third_party/blink/renderer/bindings:global_constructors_idls",
  ]
}

compute_global_objects("modules_global_objects") {
  sources = modules_idl_files
  sources_generated = [ "$bindings_core_output_dir/global_objects_core.pickle" ]
  output_file = "$bindings_modules_output_dir/global_objects_modules.pickle"
  deps = [ "//third_party/blink/renderer/bindings/core:core_global_objects" ]
}

if (use_blink_v8_binding_new_idl_interface) {
  group("modules_global_constructors_idls") {
  }
} else {
  generate_global_constructors("modules_global_constructors_idls") {
    sources = modules_idl_files
    global_objects_file =
        "$bindings_modules_output_dir/global_objects_modules.pickle"
    interfaces = modules_global_constructors_original_interfaces
    basenames = modules_global_constructors_original_interface_basenames
    component = "modules"
    output_dir = blink_modules_output_dir
    deps = [ ":modules_global_objects" ]
  }
}

# Compile the sources produced above. This will get linked into "modules".
source_set("generated") {
  visibility = [ "//third_party/blink/renderer/modules:*" ]

  sources = get_target_outputs(":event_modules") +
            get_target_outputs(":event_modules_names") +
            get_target_outputs(":event_target_modules_names")

  configs += [
    "//third_party/blink/renderer:config",
    "//third_party/blink/renderer/modules:modules_implementation",
    "//third_party/blink/renderer:non_test_config",
    "//third_party/blink/renderer:inside_blink",
  ]

  deps = [
    ":event_modules",
    ":event_modules_names",
    ":event_target_modules_names",
    "//media/midi:mojo_blink_headers",
    "//third_party/blink/public/mojom:mojom_modules_blink_headers",
    "//third_party/blink/renderer/core",
    "//third_party/blink/renderer/platform/wtf",
    "//v8",
  ]
}
