blob: 66deafe203d03aaf329332ec70e437b89e5f76c0 [file] [log] [blame]
# Copyright 2014 Tfe 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/WebKit/Source/modules/modules.gni")
import("//third_party/WebKit/Source/bindings/scripts/scripts.gni")
import("//third_party/WebKit/Source/build/scripts/scripts.gni")
group("bindings_modules_generated") {
visibility = [ "//third_party/WebKit/*" ]
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/WebKit/Source/modules/app_banner/BeforeInstallPromptEvent.idl",
"//third_party/WebKit/Source/modules/background_fetch/BackgroundFetchClickEvent.idl",
"//third_party/WebKit/Source/modules/background_fetch/BackgroundFetchEvent.idl",
"//third_party/WebKit/Source/modules/background_fetch/BackgroundFetchFailEvent.idl",
"//third_party/WebKit/Source/modules/background_fetch/BackgroundFetchedEvent.idl",
"//third_party/WebKit/Source/modules/background_sync/SyncEvent.idl",
"//third_party/WebKit/Source/modules/cookie_store/CookieChangeEvent.idl",
"//third_party/WebKit/Source/modules/device_orientation/DeviceMotionEvent.idl",
"//third_party/WebKit/Source/modules/device_orientation/DeviceOrientationEvent.idl",
"//third_party/WebKit/Source/modules/encryptedmedia/MediaEncryptedEvent.idl",
"//third_party/WebKit/Source/modules/encryptedmedia/MediaKeyMessageEvent.idl",
"//third_party/WebKit/Source/modules/gamepad/GamepadEvent.idl",
"//third_party/WebKit/Source/modules/indexeddb/IDBVersionChangeEvent.idl",
"//third_party/WebKit/Source/modules/mediarecorder/BlobEvent.idl",
"//third_party/WebKit/Source/modules/mediastream/MediaStreamEvent.idl",
"//third_party/WebKit/Source/modules/mediastream/MediaStreamTrackEvent.idl",
"//third_party/WebKit/Source/modules/notifications/NotificationEvent.idl",
"//third_party/WebKit/Source/modules/payments/AbortPaymentEvent.idl",
"//third_party/WebKit/Source/modules/payments/CanMakePaymentEvent.idl",
"//third_party/WebKit/Source/modules/payments/PaymentRequestEvent.idl",
"//third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEvent.idl",
"//third_party/WebKit/Source/modules/peerconnection/RTCDTMFToneChangeEvent.idl",
"//third_party/WebKit/Source/modules/peerconnection/RTCDataChannelEvent.idl",
"//third_party/WebKit/Source/modules/peerconnection/RTCPeerConnectionIceEvent.idl",
"//third_party/WebKit/Source/modules/presentation/PresentationConnectionAvailableEvent.idl",
"//third_party/WebKit/Source/modules/presentation/PresentationConnectionCloseEvent.idl",
"//third_party/WebKit/Source/modules/push_messaging/PushEvent.idl",
"//third_party/WebKit/Source/modules/sensor/SensorErrorEvent.idl",
"//third_party/WebKit/Source/modules/serviceworkers/ExtendableEvent.idl",
"//third_party/WebKit/Source/modules/serviceworkers/ExtendableMessageEvent.idl",
"//third_party/WebKit/Source/modules/serviceworkers/FetchEvent.idl",
"//third_party/WebKit/Source/modules/serviceworkers/InstallEvent.idl",
"//third_party/WebKit/Source/modules/speech/SpeechRecognitionError.idl",
"//third_party/WebKit/Source/modules/speech/SpeechRecognitionEvent.idl",
"//third_party/WebKit/Source/modules/speech/SpeechSynthesisEvent.idl",
"//third_party/WebKit/Source/modules/storage/StorageEvent.idl",
"//third_party/WebKit/Source/modules/vr/VRDisplayEvent.idl",
"//third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.idl",
"//third_party/WebKit/Source/modules/webaudio/OfflineAudioCompletionEvent.idl",
"//third_party/WebKit/Source/modules/webgl/WebGLContextEvent.idl",
"//third_party/WebKit/Source/modules/webmidi/MIDIConnectionEvent.idl",
"//third_party/WebKit/Source/modules/webmidi/MIDIMessageEvent.idl",
"//third_party/WebKit/Source/modules/websockets/CloseEvent.idl",
"//third_party/WebKit/Source/modules/xr/XRInputSourceEvent.idl",
"//third_party/WebKit/Source/modules/xr/XRSessionEvent.idl",
]
output_file = "event_modules_names.json5"
suffix = "Modules"
}
make_event_factory("event_modules") {
visibility = [ ":*" ]
in_files = [ "$root_gen_dir/blink/event_modules_names.json5" ]
outputs = [
"$blink_modules_output_dir/event_modules_factory.cc",
]
deps = make_core_generated_deps + [ "//third_party/WebKit/Source/bindings/modules:modules_bindings_generated_event_interfaces" ]
deps += [ "//media/midi:mojo_blink" ]
}
make_names("event_modules_names") {
visibility = [ ":*" ]
in_files = [ "$root_gen_dir/blink/event_modules_names.json5" ]
output_dir = blink_modules_output_dir
deps = make_core_generated_deps + [ "//third_party/WebKit/Source/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_individual("interfaces_info_individual_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/InterfacesInfoOverallIndividual.pickle"
component_info_file =
"$bindings_modules_output_dir/ComponentInfoModules.pickle"
deps = [
":modules_core_global_constructors_idls",
":modules_global_constructors_idls",
]
}
action("interfaces_info") {
script = "$bindings_scripts_dir/compute_interfaces_info_overall.py"
inputs = [
"$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle",
]
outputs = [
"$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
]
args = [
"--",
rebase_path("$bindings_core_output_dir/InterfacesInfoCoreIndividual.pickle",
root_build_dir),
rebase_path(
"$bindings_modules_output_dir/InterfacesInfoOverallIndividual.pickle",
root_build_dir),
rebase_path("$bindings_modules_output_dir/InterfacesInfoOverall.pickle",
root_build_dir),
]
public_deps = [
":interfaces_info_individual_modules",
"//third_party/WebKit/Source/bindings/core:interfaces_info_individual_core",
]
}
compute_global_objects("modules_global_objects") {
sources = modules_idl_files
sources_generated = [ "$bindings_core_output_dir/GlobalObjectsCore.pickle" ]
output_file = "$bindings_modules_output_dir/GlobalObjectsModules.pickle"
deps = [
"//third_party/WebKit/Source/bindings/core:core_global_objects",
]
}
generate_global_constructors("modules_core_global_constructors_idls") {
sources = core_idl_files + core_idl_with_modules_dependency_files
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.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 = [
":modules_global_objects",
]
}
generate_global_constructors("modules_global_constructors_idls") {
sources = modules_idl_files
global_objects_file =
"$bindings_modules_output_dir/GlobalObjectsModules.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/WebKit/Source/modules:*" ]
sources = get_target_outputs(":event_modules") +
get_target_outputs(":event_modules_names") +
get_target_outputs(":event_target_modules_names")
configs += [
"//third_party/WebKit/Source:config",
"//third_party/WebKit/Source/modules:modules_implementation",
"//third_party/WebKit/Source:non_test_config",
"//third_party/WebKit/Source:inside_blink",
]
deps = [
":event_modules",
":event_modules_names",
":event_target_modules_names",
"//third_party/WebKit/Source/core",
"//third_party/WebKit/Source/platform/wtf",
"//v8",
]
}
generate_web_idl_collection("modules_web_idl_collection") {
sources = modules_definition_idl_files + modules_dependency_idl_files
output = "WebIdlCollectionForModules.pickle"
component = "modules"
output_dir = bindings_modules_output_dir
}