blob: 32ae4d9496af83cd719ef2246570ac9c3d9bac52 [file] [log] [blame]
# 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("//build/split_static_library.gni")
import("//build/config/chromecast_build.gni")
import("//third_party/WebKit/Source/bindings/bindings.gni")
import("//third_party/WebKit/Source/bindings/modules/v8/generated.gni")
import("//third_party/WebKit/Source/bindings/modules/v8/v8.gni")
import("//third_party/WebKit/Source/build/scripts/scripts.gni")
import("//third_party/WebKit/Source/modules/modules.gni")
import("//third_party/WebKit/Source/modules/modules_idl_files.gni")
visibility = [ "//third_party/WebKit/Source/*" ]
if (!is_component_build && is_win) {
# This target as a static library (for non-component builds) is >2GB for
# official builds and some goma builds on Windows. This causes linking to
# fail. As a workaround, force using a split static library for these
# configurations.
modules_target_type = "split_static_library"
} else {
modules_target_type = "component"
}
config("modules_implementation") {
defines = [ "BLINK_MODULES_IMPLEMENTATION=1" ]
if (is_chromecast) {
defines += [
"BLINK_MSLOG=LOG(INFO)",
"BLINK_SBLOG=LOG(INFO)",
]
}
}
make_names("module_names") {
in_files = [ "indexeddb/indexed_db_names.json5" ]
output_dir = blink_modules_output_dir
deps = [] # Don't use default deps (otherwise it will be circular).
}
target("jumbo_" + modules_target_type, "modules") {
output_name = "blink_modules"
if (modules_target_type == "split_static_library") {
split_count = 5
}
visibility = [] # Allow re-assignment of list.
visibility = [ "//third_party/WebKit/*" ]
sources = [
"EventModules.h",
"EventModulesFactory.h",
"EventTargetModules.h",
"ModulesExport.h",
"ModulesInitializer.cpp",
"ModulesInitializer.h",
]
# Compile sources generated by module_names script.
sources += get_target_outputs(":module_names")
sources += bindings_modules_v8_files
sources += rebase_path(
[ bindings_generated_v8_context_snapshot_external_references_file ],
".",
"//")
configs += [
":modules_implementation",
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning",
"//third_party/WebKit/Source:config",
"//third_party/WebKit/Source:non_test_config",
"//third_party/WebKit/Source:inside_blink",
"//third_party/WebKit/Source/core:blink_core_pch",
"//tools/v8_context_snapshot:use_v8_context_snapshot",
]
deps = [
":make_modules_generated",
":module_names",
"//third_party/WebKit/Source/bindings/modules:generated",
"//third_party/WebKit/Source/bindings/modules/v8:bindings_modules_impl",
"//third_party/WebKit/Source/bindings/modules/v8:bindings_modules_origin_trial_features",
"//third_party/WebKit/Source/core",
"//third_party/WebKit/Source/modules/accessibility",
"//third_party/WebKit/Source/modules/animationworklet",
"//third_party/WebKit/Source/modules/app_banner",
"//third_party/WebKit/Source/modules/audio_output_devices",
"//third_party/WebKit/Source/modules/background_fetch",
"//third_party/WebKit/Source/modules/background_sync",
"//third_party/WebKit/Source/modules/battery",
"//third_party/WebKit/Source/modules/beacon",
"//third_party/WebKit/Source/modules/bluetooth",
"//third_party/WebKit/Source/modules/broadcastchannel",
"//third_party/WebKit/Source/modules/budget",
"//third_party/WebKit/Source/modules/cachestorage",
"//third_party/WebKit/Source/modules/canvas",
"//third_party/WebKit/Source/modules/clipboard",
"//third_party/WebKit/Source/modules/cookie_store",
"//third_party/WebKit/Source/modules/credentialmanager",
"//third_party/WebKit/Source/modules/crypto",
"//third_party/WebKit/Source/modules/csspaint",
"//third_party/WebKit/Source/modules/device_orientation",
"//third_party/WebKit/Source/modules/document_metadata",
"//third_party/WebKit/Source/modules/donottrack",
"//third_party/WebKit/Source/modules/encoding",
"//third_party/WebKit/Source/modules/encryptedmedia",
"//third_party/WebKit/Source/modules/eventsource",
"//third_party/WebKit/Source/modules/exported",
"//third_party/WebKit/Source/modules/filesystem",
"//third_party/WebKit/Source/modules/gamepad",
"//third_party/WebKit/Source/modules/geolocation",
"//third_party/WebKit/Source/modules/imagecapture",
"//third_party/WebKit/Source/modules/indexeddb",
"//third_party/WebKit/Source/modules/installation",
"//third_party/WebKit/Source/modules/installedapp",
"//third_party/WebKit/Source/modules/keyboard_lock",
"//third_party/WebKit/Source/modules/locks",
"//third_party/WebKit/Source/modules/media_capabilities",
"//third_party/WebKit/Source/modules/media_controls",
"//third_party/WebKit/Source/modules/mediacapturefromelement",
"//third_party/WebKit/Source/modules/mediarecorder",
"//third_party/WebKit/Source/modules/mediasession",
"//third_party/WebKit/Source/modules/mediasource",
"//third_party/WebKit/Source/modules/mediastream",
"//third_party/WebKit/Source/modules/navigatorcontentutils",
"//third_party/WebKit/Source/modules/netinfo",
"//third_party/WebKit/Source/modules/nfc",
"//third_party/WebKit/Source/modules/notifications",
"//third_party/WebKit/Source/modules/payments",
"//third_party/WebKit/Source/modules/peerconnection",
"//third_party/WebKit/Source/modules/permissions",
"//third_party/WebKit/Source/modules/picture_in_picture",
"//third_party/WebKit/Source/modules/plugins",
"//third_party/WebKit/Source/modules/presentation",
"//third_party/WebKit/Source/modules/push_messaging",
"//third_party/WebKit/Source/modules/quota",
"//third_party/WebKit/Source/modules/remoteplayback",
"//third_party/WebKit/Source/modules/screen_orientation",
"//third_party/WebKit/Source/modules/sensor",
"//third_party/WebKit/Source/modules/serviceworkers",
"//third_party/WebKit/Source/modules/shapedetection",
"//third_party/WebKit/Source/modules/speech",
"//third_party/WebKit/Source/modules/srcobject",
"//third_party/WebKit/Source/modules/storage",
"//third_party/WebKit/Source/modules/time_zone_monitor",
"//third_party/WebKit/Source/modules/vibration",
"//third_party/WebKit/Source/modules/vr",
"//third_party/WebKit/Source/modules/wake_lock",
"//third_party/WebKit/Source/modules/webaudio",
"//third_party/WebKit/Source/modules/webdatabase",
"//third_party/WebKit/Source/modules/webgl",
"//third_party/WebKit/Source/modules/webmidi",
"//third_party/WebKit/Source/modules/webshare",
"//third_party/WebKit/Source/modules/websockets",
"//third_party/WebKit/Source/modules/webusb",
"//third_party/WebKit/Source/modules/xr",
"//third_party/icu",
"//third_party/sqlite",
"//third_party/zlib",
]
if (is_win) {
cflags = [ "/wd4334" ] # Result of 32-bit shift implicitly converted to 64 bits.
}
configs -= [ "//build/config/compiler:default_symbols" ]
configs += blink_symbols_config
}
jumbo_source_set("modules_testing") {
sources = [
"accessibility/testing/InternalsAccessibility.cpp",
"accessibility/testing/InternalsAccessibility.h",
"mediastream/testing/InternalsMediaStream.cpp",
"mediastream/testing/InternalsMediaStream.h",
"navigatorcontentutils/testing/InternalsNavigatorContentUtils.cpp",
"navigatorcontentutils/testing/InternalsNavigatorContentUtils.h",
"navigatorcontentutils/testing/NavigatorContentUtilsClientMock.cpp",
"navigatorcontentutils/testing/NavigatorContentUtilsClientMock.h",
"peerconnection/testing/InternalsRTCCertificate.cpp",
"peerconnection/testing/InternalsRTCCertificate.h",
"peerconnection/testing/InternalsRTCPeerConnection.cpp",
"peerconnection/testing/InternalsRTCPeerConnection.h",
"serviceworkers/testing/InternalsServiceWorker.cpp",
"serviceworkers/testing/InternalsServiceWorker.h",
"speech/testing/InternalsSpeechSynthesis.cpp",
"speech/testing/InternalsSpeechSynthesis.h",
"speech/testing/PlatformSpeechSynthesizerMock.cpp",
"speech/testing/PlatformSpeechSynthesizerMock.h",
"vibration/testing/InternalsVibration.cpp",
"vibration/testing/InternalsVibration.h",
"webaudio/testing/InternalsWebAudio.cpp",
"webaudio/testing/InternalsWebAudio.h",
]
if (snake_case_source_files) {
sources += [
"$bindings_modules_v8_output_dir/v8_internals_partial.cc",
"$bindings_modules_v8_output_dir/v8_internals_partial.h",
]
} else {
sources += [
"$bindings_modules_v8_output_dir/V8InternalsPartial.cpp",
"$bindings_modules_v8_output_dir/V8InternalsPartial.h",
]
}
configs += [
"//third_party/WebKit/Source:config",
"//third_party/WebKit/Source:inside_blink",
"//third_party/WebKit/Source/core:blink_core_pch",
]
deps = [
"//third_party/WebKit/Source/core",
"//third_party/WebKit/Source/modules",
]
}
group("make_modules_generated") {
public_deps = [
":module_names",
"//third_party/WebKit/Source/bindings/modules:bindings_modules_generated",
"//third_party/WebKit/Source/core:core_event_interfaces",
]
}
jumbo_source_set("unit_tests") {
testonly = true
sources = [
"accessibility/AXObjectCacheTest.cpp",
"accessibility/AccessibilityObjectModelTest.cpp",
"accessibility/testing/AccessibilityTest.cpp",
"accessibility/testing/AccessibilityTest.h",
"animationworklet/AnimationWorkletGlobalScopeTest.cpp",
"animationworklet/AnimationWorkletThreadTest.cpp",
"background_fetch/BackgroundFetchManagerTest.cpp",
"cachestorage/CacheTest.cpp",
"canvas/canvas2d/CanvasRenderingContext2DAPITest.cpp",
"canvas/canvas2d/CanvasRenderingContext2DTest.cpp",
"canvas/htmlcanvas/HTMLCanvasElementModuleTest.cpp",
"canvas/offscreencanvas/OffscreenCanvasTest.cpp",
"credentialmanager/CredentialsContainerTest.cpp",
"credentialmanager/PasswordCredentialTest.cpp",
"csspaint/PaintRenderingContext2DTest.cpp",
"csspaint/PaintWorkletTest.cpp",
"document_metadata/CopylessPasteExtractorTest.cpp",
"eventsource/EventSourceParserTest.cpp",
"filesystem/DOMFileSystemBaseTest.cpp",
"indexeddb/IDBKeyPathTest.cpp",
"indexeddb/IDBRequestTest.cpp",
"indexeddb/IDBTestHelper.cpp",
"indexeddb/IDBTransactionTest.cpp",
"indexeddb/IDBValueWrappingTest.cpp",
"indexeddb/MockWebIDBDatabase.cpp",
"indexeddb/MockWebIDBDatabase.h",
"media_controls/MediaControlsImplTest.cpp",
"media_controls/MediaControlsOrientationLockDelegateTest.cpp",
"media_controls/MediaControlsRotateToFullscreenDelegateTest.cpp",
"media_controls/elements/MediaControlInputElementTest.cpp",
"media_controls/elements/MediaControlLoadingPanelElementTest.cpp",
"media_controls/elements/MediaControlOverlayPlayButtonElementTest.cpp",
"media_controls/elements/MediaControlTimelineElementTest.cpp",
"media_controls/elements/MediaControlToggleClosedCaptionsButtonElementTest.cpp",
"mediastream/MediaConstraintsTest.cpp",
"mediastream/MediaDevicesTest.cpp",
"notifications/NotificationDataTest.cpp",
"notifications/NotificationImageLoaderTest.cpp",
"notifications/NotificationResourcesLoaderTest.cpp",
"payments/AbortTest.cpp",
"payments/CanMakePaymentTest.cpp",
"payments/CompleteTest.cpp",
"payments/OnPaymentResponseTest.cpp",
"payments/PaymentAddressTest.cpp",
"payments/PaymentEventDataConversionTest.cpp",
"payments/PaymentRequestDetailsTest.cpp",
"payments/PaymentRequestTest.cpp",
"payments/PaymentRequestUpdateEventTest.cpp",
"payments/PaymentResponseTest.cpp",
"payments/PaymentTestHelper.cpp",
"payments/PaymentTestHelper.h",
"payments/PaymentsValidatorsTest.cpp",
"peerconnection/RTCDataChannelTest.cpp",
"peerconnection/RTCPeerConnectionTest.cpp",
"picture_in_picture/PictureInPictureTest.cpp",
"presentation/MockPresentationService.h",
"presentation/MockWebPresentationClient.h",
"presentation/PresentationAvailabilityStateTest.cpp",
"presentation/PresentationAvailabilityTest.cpp",
"presentation/PresentationReceiverTest.cpp",
"presentation/PresentationRequestTest.cpp",
"push_messaging/PushManagerTest.cpp",
"push_messaging/PushMessageDataTest.cpp",
"push_messaging/PushSubscriptionTest.cpp",
"remoteplayback/RemotePlaybackTest.cpp",
"screen_orientation/ScreenOrientationControllerImplTest.cpp",
"serviceworkers/ServiceWorkerContainerTest.cpp",
"serviceworkers/WebEmbeddedWorkerImplTest.cpp",
"wake_lock/ScreenWakeLockTest.cpp",
"webaudio/AudioBasicProcessorHandlerTest.cpp",
"webaudio/AudioContextTest.cpp",
"webaudio/AudioWorkletGlobalScopeTest.cpp",
"webaudio/AudioWorkletThreadTest.cpp",
"webaudio/BaseAudioContextTest.cpp",
"webaudio/ConvolverNodeTest.cpp",
"webaudio/DynamicsCompressorNodeTest.cpp",
"webaudio/ScriptProcessorNodeTest.cpp",
"webaudio/StereoPannerNodeTest.cpp",
"webdatabase/QuotaTrackerTest.cpp",
"websockets/DOMWebSocketTest.cpp",
"websockets/DocumentWebSocketChannelTest.cpp",
]
configs += [
"//third_party/WebKit/Source:config",
"//third_party/WebKit/Source:inside_blink",
"//third_party/WebKit/Source/core:blink_core_pch",
]
deps = [
":modules",
":modules_testing",
"//skia",
"//testing/gmock",
"//testing/gtest",
"//third_party/WebKit/Source/core",
"//third_party/WebKit/Source/platform",
"//third_party/WebKit/Source/platform/wtf",
"//third_party/WebKit/public:media_devices_mojo_bindings_blink",
"//v8",
]
}