| # 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/build/scripts/scripts.gni") |
| import("//sky/engine/core/core.gni") |
| import("//mojo/dart/embedder/embedder.gni") |
| |
| visibility = [ "//sky/engine/*" ] |
| |
| rel_sky_core_gen_dir = rebase_path(sky_core_output_dir, root_build_dir) |
| |
| source_set("libraries") { |
| public_deps = [ |
| "//base", |
| "//mojo/application", |
| "//mojo/common", |
| "//mojo/public/c/system", |
| "//mojo/public/cpp/bindings", |
| "//mojo/public/cpp/system", |
| "//mojo/public/cpp/utility", |
| "//mojo/public/interfaces/application", |
| "//skia", |
| "//sky/engine/tonic:tonic", |
| "//sky/engine/wtf", |
| "//third_party/iccjpeg", |
| "//third_party/libpng", |
| "//third_party/ots", |
| "//third_party/qcms", |
| "//third_party/zlib", |
| "//url", |
| ] |
| } |
| |
| source_set("prerequisites") { |
| deps = [ |
| ":libraries", |
| ":make_core_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", |
| ] |
| } |
| |
| dart_embedder_resources("generate_sky_embedder_service_isolate_resources_cc") { |
| deps = [ |
| "//mojo/dart/embedder:deploy_observatory", |
| ] |
| inputs = [ |
| "//sky/engine/core/script/dart_service_isolate/loader.dart", |
| "//sky/engine/core/script/dart_service_isolate/main.dart", |
| "//sky/engine/core/script/dart_service_isolate/resources.dart", |
| "//sky/engine/core/script/dart_service_isolate/server.dart", |
| ] |
| root_prefix = "//sky/engine/core/script/" |
| input_directory = "$root_out_dir/observatory/deployed/web/" |
| output = "$target_gen_dir/sky_embedder_service_isolate_resources.cc" |
| table_name = "sky_embedder_service_isolate" |
| } |
| |
| static_library("core") { |
| output_name = "sky_core" |
| |
| deps = [ |
| ":core_generated", |
| ":generate_sky_embedder_service_isolate_resources_cc", |
| ":libraries", |
| ":prerequisites", |
| "//sky/engine/platform", |
| "//sky/engine/bindings", |
| "//dart/runtime/bin:embedded_dart_io", |
| "//dart/runtime:libdart", |
| "//dart/runtime/vm:libdart_platform", |
| "//mojo/services/navigation/public/interfaces", |
| ] |
| |
| sources = sky_core_files |
| |
| sources += [ "$target_gen_dir/sky_embedder_service_isolate_resources.cc" ] |
| |
| include_dirs = [ |
| # Needed for dart_mirrors_api.h in dart_controller.cc |
| rebase_path("//dart/runtime"), |
| ] |
| |
| forward_dependent_configs_from = [ ":libraries" ] |
| |
| # core and core_generated are really the same thing. |
| allow_circular_includes_from = [ |
| ":core_generated", |
| "//sky/engine/bindings", |
| ] |
| } |
| |
| source_set("testing") { |
| deps = [ |
| ":core", |
| ":core_generated", |
| ":prerequisites", |
| "//sky/engine/platform", |
| "//sky/engine/wtf", |
| ] |
| |
| sources = [ |
| "testing/DummyPageHolder.cpp", |
| "testing/DummyPageHolder.h", |
| "testing/URLTestHelpers.cpp", |
| "testing/URLTestHelpers.h", |
| ] |
| } |
| |
| source_set("core_generated") { |
| 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", |
| "//skia", |
| "//sky/engine/platform", |
| "//sky/engine/wtf", |
| "//third_party/iccjpeg", |
| "//third_party/libpng", |
| "//third_party/qcms", |
| "//url", |
| ] |
| |
| include_dirs = [ "$root_build_dir" ] |
| } |
| |
| # core_event_interfaces -------------------------------------------------------- |
| |
| # Calls generate_event_interfaces |
| # |
| # Parameters: |
| # sources = A list of IDL files to process. |
| # output_file = The .in file to write, relative to the sky_gen_dir. |
| # suffix = (Optional) String to be passed to script via --suffix |
| template("generate_event_interfaces") { |
| action(target_name) { |
| # Write the file list to a unique temp file to avoid blowing out the |
| # command line length limit. |
| idl_files_list = "$target_gen_dir/${target_name}_file_list.tmp" |
| write_file(idl_files_list, rebase_path(invoker.sources, root_build_dir)) |
| |
| inputs = [ |
| "//sky/engine/bindings/scripts/utilities.py", |
| idl_files_list, |
| ] + invoker.sources |
| |
| output_file = "$root_gen_dir/sky/" + invoker.output_file |
| outputs = [ |
| output_file, |
| ] |
| |
| script = "//sky/engine/bindings/scripts/generate_event_interfaces.py" |
| args = [ |
| "--event-idl-files-list", |
| rebase_path(idl_files_list, root_build_dir), |
| "--event-interfaces-file", |
| rebase_path(output_file, root_build_dir), |
| "--write-file-only-if-changed=1", # Always true for Ninja. |
| ] |
| |
| if (defined(invoker.suffix)) { |
| args += [ |
| "--suffix", |
| invoker.suffix, |
| ] |
| } |
| } |
| } |
| |
| 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_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_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/HTMLAttributeNames.in", |
| ] |
| other_inputs = make_element_factory_files |
| outputs = [ |
| "$sky_core_output_dir/HTMLNames.cpp", |
| "$sky_core_output_dir/HTMLNames.h", |
| ] |
| deps = [ |
| ":libraries", |
| ] |
| } |
| |
| 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/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_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_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 |
| } |
| |
| 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 |
| } |