blob: 1eca415d268a04bca4d16f162813050a5912a49e [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("//mojo/public/tools/bindings/mojom.gni")
import("//third_party/WebKit/Source/config.gni")
import("//tools/grit/grit_rule.gni")
blink_headers_values = exec_script("//build/gypi_to_gn.py",
[ rebase_path("blink_headers.gypi") ],
"scope",
[ "blink_headers.gypi" ])
if (is_android) {
import("//build/config/android/rules.gni")
}
# GYP version: WebKit/public/blink.gyp:blink
group("blink") {
public_deps = [
":blink_headers",
":blink_minimal",
"//third_party/WebKit/Source/platform",
"//third_party/WebKit/Source/web",
# public/platform/Platform.h in ':blink_headers' depends on Mojo APIs, and
# the dependent of this target needs to link Mojo.
"//mojo/public/c/system:for_component",
]
}
group("blink_for_unittests") {
public_deps = [
":blink",
# Since public/platform/Platform.h depends on Mojo APIs, unittests depending
# on :blink needs to link mojo/edk/system.
"//mojo/edk/system",
]
}
# This target provides a minimal set of Blink APIs such as WebString to use in
# places that cannot link against the full Blink library. FIXME: We really
# shouldn't have this at all and should instead remove all uses of Blink's API
# types from places that can't link against Blink. crbug.com/248653
#
# GYP version: WebKit/public/blink.gyp:blink_minimal
group("blink_minimal") {
public_deps = [
":blink_headers",
"//third_party/WebKit/Source/platform:blink_common",
]
}
# GYP version: WebKit/public/blink.gyp:blink_test_support
group("test_support") {
public_deps = [
"//third_party/WebKit/Source/web:test_support",
]
}
# GYP version: WebKit/public/all.gyp:all_blink
group("all_blink") {
# This includes some test targets. Don't link into production!
testonly = true
public_deps = [
"//third_party/WebKit/Source/core",
"//third_party/WebKit/Source/modules",
"//third_party/WebKit/Source/platform:blink_heap_unittests",
"//third_party/WebKit/Source/platform:blink_platform_unittests",
"//third_party/WebKit/Source/web",
"//third_party/WebKit/Source/web:webkit_unit_tests",
"//third_party/WebKit/Source/wtf:wtf_unittests",
]
if (is_mac) {
# TODO(GYP): Re-enable this as soon as we can link Blink binaries on mac.
public_deps -= [
"//third_party/WebKit/Source/platform:blink_heap_unittests",
"//third_party/WebKit/Source/platform:blink_platform_unittests",
"//third_party/WebKit/Source/web:webkit_unit_tests",
]
}
}
config("blink_headers_config") {
include_dirs = [
"..",
"$root_gen_dir/third_party/WebKit",
]
# Allow :blink_headers to include v8.h without linking to it.
configs = [ "//v8:external_config" ]
}
config("debug_devtools") {
if (debug_devtools) {
defines = [ "DEBUG_DEVTOOLS=1" ]
}
}
if (is_android) {
# GYP version: WebKit/public/blink_headers.gyp:web_input_event_java
# GYP version: WebKit/public/blink_headers.gyp:web_text_input_type
java_cpp_enum("blink_headers_java_enums_srcjar") {
sources = [
"./platform/WebDisplayMode.h",
"./web/WebInputEvent.h",
"./web/WebTextInputType.h",
]
}
# GYP version: WebKit/public/blink_headers.gyp:blink_headers_java
android_library("blink_headers_java") {
srcjar_deps = [ ":blink_headers_java_enums_srcjar" ]
}
}
# Depend on this target to use public blink API headers for things like enums
# and public structures without actually linking against any Blink libraries.
source_set("blink_headers") {
public_configs = [
":blink_headers_config",
# Blink exposes icu headers in the public API.
"//third_party/icu:icu_config",
# Blink exposes NPAPI headers in the public API.
"//third_party/npapi:npapi_config",
]
sources = blink_headers_values.blink_public_sources
}
# GYP version: WebKit/public/blink_devtools.gyp:blink_devtools_frontend_resources
group("blink_devtools_frontend_resources") {
public_deps = [
"//third_party/WebKit/Source/devtools:devtools_frontend_resources",
]
}
# GYP version: WebKit/public/blink_devtools.gyp:blink_generate_devtools_grd
group("blink_generate_devtools_grd") {
public_deps = [
"//third_party/WebKit/Source/devtools:generate_devtools_grd",
]
}
# GYP version: WebKit/public/blink_resources.gyp:blink_resources
grit("resources") {
output_dir = "$root_gen_dir/blink/public/resources"
use_qualified_include = true
source = "blink_resources.grd"
outputs = [
"grit/blink_resources.h",
"blink_resources.pak",
]
if (use_concatenated_impulse_responses) {
grit_flags = [
"-D",
"use_concatenated_impulse_responses",
]
}
}
# GYP version: WebKit/public/blink_resources.gyp:blink_image_resources
grit("image_resources") {
output_dir = "$root_gen_dir/blink/public/resources"
use_qualified_include = true
source = "blink_image_resources.grd"
outputs = [
"grit/blink_image_resources.h",
"blink_image_resources_100_percent.pak",
"blink_image_resources_200_percent.pak",
]
}
# GYP version: WebKit/public/blink.gyp:mojo_bindings_blink_mojom
mojom("mojo_bindings_blink") {
sources = [
"platform/modules/bluetooth/web_bluetooth.mojom",
"platform/modules/notifications/notification.mojom",
"platform/modules/payments/payment_request.mojom",
]
for_blink = true
variant = "wtf"
}
# GYP version: WebKit/public/blink.gyp:mojo_bindings_mojom
mojom("mojo_bindings") {
sources = [
"platform/modules/bluetooth/web_bluetooth.mojom",
"platform/modules/notifications/notification.mojom",
"platform/modules/payments/payment_request.mojom",
]
}