|  | # 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/bindings.gni") | 
|  | import("//sky/engine/build/scripts/scripts.gni") | 
|  | import("//sky/engine/core/core.gni") | 
|  |  | 
|  | visibility = [ "//sky/*" ] | 
|  |  | 
|  | # Main interface IDL files (excluding dependencies and testing) | 
|  | # are included as properties on global objects, and in aggregate bindings. | 
|  | main_interface_idl_files = core_idl_files | 
|  |  | 
|  | main_interface_idl_files_list = "$target_gen_dir/main_interface_idl_files.tmp" | 
|  | write_file(main_interface_idl_files_list, | 
|  | rebase_path(main_interface_idl_files, root_build_dir)) | 
|  |  | 
|  | generated_global_constructors_idl_files = | 
|  | [ "$sky_output_dir/WindowConstructors.idl" ] | 
|  | generated_global_constructors_header_files = | 
|  | [ "$sky_output_dir/WindowConstructors.h" ] | 
|  |  | 
|  | # FIXME: Generate separate core_global_objects | 
|  | # http://crbug.com/358074 | 
|  | # GYP version: generated.gyp:global_objects | 
|  | action("global_objects") { | 
|  | script = "scripts/compute_global_objects.py" | 
|  |  | 
|  | inputs = [ | 
|  | "scripts/utilities.py", | 
|  |  | 
|  | # Only look in main IDL files (exclude dependencies and testing, | 
|  | # which should not define global objects). | 
|  | main_interface_idl_files_list, | 
|  | ] + main_interface_idl_files | 
|  |  | 
|  | outputs = [ | 
|  | "$bindings_output_dir/GlobalObjects.pickle", | 
|  | ] | 
|  |  | 
|  | args = [ | 
|  | "--idl-files-list", | 
|  | rebase_path(main_interface_idl_files_list, root_build_dir), | 
|  | "--write-file-only-if-changed=1",  # Always true for Ninja. FIXME: remove | 
|  | # when everything switched to GN. | 
|  | "--", | 
|  | rebase_path("$bindings_output_dir/GlobalObjects.pickle", root_build_dir), | 
|  | ] | 
|  | } | 
|  |  | 
|  | # GYP version: generated.gyp:global_constructors_idls | 
|  | action("global_constructors_idls") { | 
|  | script = "scripts/generate_global_constructors.py" | 
|  |  | 
|  | inputs = [ | 
|  | "scripts/generate_global_constructors.py", | 
|  | "scripts/utilities.py", | 
|  | "$bindings_output_dir/GlobalObjects.pickle", | 
|  |  | 
|  | # Only includes main IDL files (exclude dependencies and testing, | 
|  | # which should not appear on global objects). | 
|  | main_interface_idl_files_list, | 
|  | ] + main_interface_idl_files | 
|  |  | 
|  | outputs = generated_global_constructors_idl_files + | 
|  | generated_global_constructors_header_files | 
|  |  | 
|  | args = [ | 
|  | "--idl-files-list", | 
|  | rebase_path(main_interface_idl_files_list, root_build_dir), | 
|  | "--global-objects-file", | 
|  | rebase_path("$bindings_output_dir/GlobalObjects.pickle", root_build_dir), | 
|  | "--write-file-only-if-changed=1",  # Always true for Ninja. | 
|  | "--", | 
|  | "Window", | 
|  | rebase_path("$sky_output_dir/WindowConstructors.idl", root_build_dir), | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":global_objects", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # GYP version: generated.gyp:generated_idls | 
|  | group("generated_idls") { | 
|  | deps = [ | 
|  | ":global_constructors_idls", | 
|  | "//sky/engine/core:generated_testing_idls", | 
|  | ] | 
|  | } |