blob: 3635f2a523a19390d60c7b22a13311a04a2954a1 [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("//sky/engine/bindings/scripts/scripts.gni")
import("//sky/engine/build/scripts/scripts.gni")
import("//sky/engine/core/core.gni")
visibility = [ "//sky/engine/*" ]
rel_sky_core_gen_dir = rebase_path(sky_core_output_dir, root_build_dir)
source_set("libraries") {
public_deps = [
"//base",
"//gin",
"//gpu/command_buffer/client:gles2_c_lib",
"//mojo/application",
"//mojo/common",
"//mojo/public/c/system:for_shared_library",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
"//mojo/public/cpp/utility",
"//mojo/public/interfaces/application",
"//mojo/services/public/interfaces/navigation",
"//mojo/services/view_manager/public/cpp",
"//skia",
"//sky/engine/wtf",
"//third_party/angle:translator",
"//third_party/iccjpeg",
"//third_party/libpng",
"//third_party/ots",
"//third_party/qcms",
"//third_party/zlib",
"//url",
"//v8",
]
}
source_set("prerequisites") {
deps = [
":libraries",
":make_core_generated",
"//sky/engine/bindings/core/v8:bindings_core_v8_generated",
"//sky/engine/platform",
]
forward_dependent_configs_from = [ ":libraries" ]
direct_dependent_configs = [
"//sky/engine:config",
"//sky/engine:inside_blink",
"//build/config/compiler:wexit_time_destructors",
]
}
static_library("core") {
output_name = "sky_core"
deps = [
":core_generated",
":libraries",
":prerequisites",
"//sky/engine/platform",
]
sources = sky_core_files
forward_dependent_configs_from = [ ":libraries" ]
# core and core_generated are really the same thing.
allow_circular_includes_from = [ ":core_generated" ]
}
source_set("testing") {
deps = [
":core",
":core_generated",
":prerequisites",
"//sky/engine/platform",
"//sky/engine/wtf",
]
sources = [
"testing/DummyPageHolder.cpp",
"testing/DummyPageHolder.h",
"testing/NullExecutionContext.cpp",
"testing/NullExecutionContext.h",
"testing/URLTestHelpers.cpp",
"testing/URLTestHelpers.h",
]
}
source_set("core_generated") {
sources = bindings_core_v8_files
# These files include all the .cpp files generated from the .idl files
# in webcore_files.
sources += bindings_core_generated_aggregate_files
sources += [
# Generated from CSSTokenizer-in.cpp
"$sky_core_output_dir/CSSTokenizer.cpp",
# Generated from BisonCSSParser-in.cpp
"$sky_core_output_dir/BisonCSSParser.cpp",
# Additional .cpp files from the make_core_generated rules.
"$sky_core_output_dir/CSSGrammar.cpp",
]
configs += [ "..:inside_blink" ]
deps = [
":make_core_generated",
":prerequisites",
"//gin",
"//skia",
"//sky/engine/bindings/core/v8:bindings_core_v8_generated",
"//sky/engine/platform",
"//sky/engine/wtf",
"//third_party/iccjpeg",
"//third_party/libpng",
"//third_party/qcms",
"//url",
"//v8",
]
include_dirs = [ "$root_build_dir" ]
}
# core_bindings_generated ------------------------------------------------------
generate_event_interfaces("core_event_interfaces") {
sources = core_event_idl_files
output_file = "core/EventInterfaces.in"
}
# generated_testing_idls -------------------------------------------------------
group("generated_testing_idls") {
deps = [
":generated_testing_idls_settings",
]
}
action("generated_testing_idls_settings") {
script = "../build/scripts/make_settings.py"
inputs = scripts_for_in_files + [
"../build/scripts/make_settings.py",
"../build/scripts/templates/SettingsMacros.h.tmpl",
"frame/Settings.in",
]
outputs = [
"$sky_core_output_dir/SettingsMacros.h",
]
args = [
rebase_path("frame/Settings.in", root_build_dir),
"--output_dir",
rel_sky_core_gen_dir,
]
}
# make_core_generated ----------------------------------------------------------
group("core_names") {
deps = [
":make_core_generated_css_property_names",
":make_core_generated_event_names",
":make_core_generated_event_target_factory",
":make_core_generated_event_target_names",
":make_core_generated_event_type_names",
":make_core_generated_fetch_initiator_type_names",
":make_core_generated_html_element_factory",
":make_core_generated_media_type_names",
]
}
group("make_core_generated") {
deps = [
":core_names",
":make_core_generated_bison",
":make_core_generated_css_property_metadata",
":make_core_generated_css_value_keywords",
":make_core_generated_event_factory",
":make_core_generated_html_element_lookup_trie",
":make_core_generated_html_element_type_helpers",
":make_core_generated_make_parser",
":make_core_generated_make_token_matcher",
":make_core_generated_media_feature_names",
":make_core_generated_media_features",
":make_core_generated_media_query_tokenizer_codepoints",
":make_core_generated_style_builder",
":make_core_generated_style_property_shorthand",
]
}
css_properties("make_core_generated_css_property_names") {
script = "../build/scripts/make_css_property_names.py"
outputs = [
"$sky_core_output_dir/CSSPropertyNames.cpp",
"$sky_core_output_dir/CSSPropertyNames.h",
]
}
process_in_files("make_core_generated_media_features") {
script = "../build/scripts/make_media_features.py"
in_files = [ "css/MediaFeatureNames.in" ]
other_inputs = [
"../build/scripts/make_media_features.py",
"../build/scripts/templates/MediaFeatures.h.tmpl",
]
outputs = [
"$sky_core_output_dir/MediaFeatures.h",
]
}
css_properties("make_core_generated_style_property_shorthand") {
script = "../build/scripts/make_style_shorthands.py"
other_inputs = [
"../build/scripts/templates/StylePropertyShorthand.cpp.tmpl",
"../build/scripts/templates/StylePropertyShorthand.h.tmpl",
]
outputs = [
"$sky_core_output_dir/StylePropertyShorthand.cpp",
"$sky_core_output_dir/StylePropertyShorthand.h",
]
deps = [
":core_names",
]
}
css_properties("make_core_generated_style_builder") {
script = "../build/scripts/make_style_builder.py"
other_inputs = [
"../build/scripts/templates/StyleBuilder.cpp.tmpl",
"../build/scripts/templates/StyleBuilderFunctions.cpp.tmpl",
"../build/scripts/templates/StyleBuilderFunctions.h.tmpl",
]
outputs = [
"$sky_core_output_dir/StyleBuilder.cpp",
"$sky_core_output_dir/StyleBuilderFunctions.h",
"$sky_core_output_dir/StyleBuilderFunctions.cpp",
]
deps = [
":core_names",
":libraries",
]
}
css_properties("make_core_generated_css_property_metadata") {
script = "../build/scripts/make_css_property_metadata.py"
other_inputs = [ "../build/scripts/templates/CSSPropertyMetadata.cpp.tmpl" ]
outputs = [
"$sky_core_output_dir/CSSPropertyMetadata.cpp",
]
deps = [
":core_names",
]
}
process_in_files("make_core_generated_css_value_keywords") {
script = "../build/scripts/make_css_value_keywords.py"
in_files = [
"css/CSSValueKeywords.in",
"css/SVGCSSValueKeywords.in",
]
outputs = [
"$sky_core_output_dir/CSSValueKeywords.cpp",
"$sky_core_output_dir/CSSValueKeywords.h",
]
other_args = [
"--gperf",
gperf_exe,
]
deps = [
"//sky/engine/wtf",
]
}
process_in_files("make_core_generated_html_element_factory") {
script = "../build/scripts/make_element_factory.py"
in_files = [
"html/HTMLTagNames.in",
"html/HTMLAttributeNames.in",
]
other_inputs = make_element_factory_files
outputs = [
"$sky_core_output_dir/HTMLElementFactory.cpp",
"$sky_core_output_dir/HTMLElementFactory.h",
"$sky_core_output_dir/HTMLNames.cpp",
"$sky_core_output_dir/HTMLNames.h",
"$sky_core_output_dir/V8HTMLElementWrapperFactory.cpp",
"$sky_core_output_dir/V8HTMLElementWrapperFactory.h",
]
deps = [
":libraries",
"//sky/engine/bindings/core/v8:bindings_core_v8_generated",
]
}
process_in_files("make_core_generated_html_element_type_helpers") {
script = "../build/scripts/make_element_type_helpers.py"
in_files = [ "html/HTMLTagNames.in" ]
other_inputs = make_element_type_helpers_files
outputs = [
"$sky_core_output_dir/HTMLElementTypeHelpers.h",
]
}
process_in_files("make_core_generated_event_factory") {
script = "../build/scripts/make_event_factory.py"
in_files = [
"$sky_core_output_dir/EventInterfaces.in",
"events/EventAliases.in",
]
other_inputs = make_event_factory_files
outputs = [
"$sky_core_output_dir/Event.cpp",
"$sky_core_output_dir/EventHeaders.h",
"$sky_core_output_dir/EventInterfaces.h",
]
deps = [
":core_names",
":libraries",
]
}
process_in_files("make_core_generated_media_feature_names") {
script = "../build/scripts/make_media_feature_names.py"
in_files = [ "css/MediaFeatureNames.in" ]
other_inputs = make_names_files
outputs = [
"$sky_core_output_dir/MediaFeatureNames.cpp",
"$sky_core_output_dir/MediaFeatureNames.h",
]
deps = [
":libraries",
]
}
# make_event_factory -----------------------------------------------------------
make_event_factory("make_core_generated_event_target_factory") {
in_files = [ "events/EventTargetFactory.in" ]
outputs = [
"$sky_core_output_dir/EventTargetHeaders.h",
"$sky_core_output_dir/EventTargetInterfaces.h",
]
}
# make_names -------------------------------------------------------------------
make_names("make_core_generated_media_type_names") {
in_files = [ "css/MediaTypeNames.in" ]
outputs = [
"$sky_core_output_dir/MediaTypeNames.cpp",
"$sky_core_output_dir/MediaTypeNames.h",
]
}
make_names("make_core_generated_event_names") {
in_files = [ "$sky_core_output_dir/EventInterfaces.in" ]
outputs = [
"$sky_core_output_dir/EventNames.cpp",
"$sky_core_output_dir/EventNames.h",
]
}
make_names("make_core_generated_event_target_names") {
in_files = [ "events/EventTargetFactory.in" ]
outputs = [
"$sky_core_output_dir/EventTargetNames.cpp",
"$sky_core_output_dir/EventTargetNames.h",
]
}
make_names("make_core_generated_fetch_initiator_type_names") {
in_files = [ "fetch/FetchInitiatorTypeNames.in" ]
outputs = [
"$sky_core_output_dir/FetchInitiatorTypeNames.cpp",
"$sky_core_output_dir/FetchInitiatorTypeNames.h",
]
}
make_names("make_core_generated_event_type_names") {
in_files = [ "events/EventTypeNames.in" ]
outputs = [
"$sky_core_output_dir/EventTypeNames.cpp",
"$sky_core_output_dir/EventTypeNames.h",
]
}
# make_token_matcher -----------------------------------------------------------
make_token_matcher("make_core_generated_make_token_matcher") {
input_file = "css/parser/CSSTokenizer-in.cpp"
output_file = "$sky_core_output_dir/CSSTokenizer.cpp"
}
make_token_matcher("make_core_generated_make_parser") {
input_file = "css/parser/BisonCSSParser-in.cpp"
output_file = "$sky_core_output_dir/BisonCSSParser.cpp"
}
# One-off scripts --------------------------------------------------------------
action("make_core_generated_media_query_tokenizer_codepoints") {
script = "../build/scripts/make_mediaquery_tokenizer_codepoints.py"
outputs = [
"$sky_core_output_dir/MediaQueryTokenizerCodepoints.cpp",
]
args = [
"--output_dir",
rel_sky_core_gen_dir,
]
deps = make_core_generated_deps
}
process_in_files("make_core_generated_html_element_lookup_trie") {
script = "../build/scripts/make_element_lookup_trie.py"
in_files = [ "html/HTMLTagNames.in" ]
other_inputs = [
"../build/scripts/templates/ElementLookupTrie.cpp.tmpl",
"../build/scripts/templates/ElementLookupTrie.h.tmpl",
]
outputs = [
"$sky_core_output_dir/HTMLElementLookupTrie.cpp",
"$sky_core_output_dir/HTMLElementLookupTrie.h",
]
deps = [
":core_names",
":libraries",
]
}
action_foreach("make_core_generated_bison") {
script = "../build/scripts/rule_bison.py"
sources = [
"css/parser/CSSGrammar.y",
]
outputs = [
"$sky_core_output_dir/{{source_name_part}}.cpp",
"$sky_core_output_dir/{{source_name_part}}.h",
]
args = [
"{{source}}",
rel_sky_core_gen_dir,
bison_exe,
]
deps = make_core_generated_deps
}