1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//third_party/WebKit/Source/bindings/bindings.gni")
6 import("//third_party/WebKit/Source/build/scripts/scripts.gni")
7 import("//third_party/WebKit/Source/core/core.gni")
8 import("//third_party/WebKit/Source/modules/modules.gni")
10 visibility = [ "//third_party/WebKit/*" ]
12 # Main interface IDL files (excluding dependencies and testing)
13 # are included as properties on global objects, and in aggregate bindings.
14 main_interface_idl_files = core_idl_files + modules_idl_files
16 main_interface_idl_files_list = "$target_gen_dir/main_interface_idl_files.tmp"
17 write_file(main_interface_idl_files_list,
18 rebase_path(main_interface_idl_files, root_build_dir))
20 generated_global_constructors_idl_files = [
21 "$blink_output_dir/WindowConstructors.idl",
22 "$blink_output_dir/SharedWorkerGlobalScopeConstructors.idl",
23 "$blink_output_dir/DedicatedWorkerGlobalScopeConstructors.idl",
24 "$blink_output_dir/ServiceWorkerGlobalScopeConstructors.idl",
26 generated_global_constructors_header_files = [
27 "$blink_output_dir/WindowConstructors.h",
28 "$blink_output_dir/SharedWorkerGlobalScopeConstructors.h",
29 "$blink_output_dir/DedicatedWorkerGlobalScopeConstructors.h",
30 "$blink_output_dir/ServiceWorkerGlobalScopeConstructors.h",
33 # FIXME: Generate separate core_global_objects
34 # http://crbug.com/358074
35 # GYP version: generated.gyp:global_objects
36 action("global_objects") {
37 script = "scripts/compute_global_objects.py"
40 "scripts/utilities.py",
41 # Only look in main IDL files (exclude dependencies and testing,
42 # which should not define global objects).
43 main_interface_idl_files_list,
44 ] + main_interface_idl_files
47 "$bindings_output_dir/GlobalObjects.pickle",
52 rebase_path(main_interface_idl_files_list, root_build_dir),
53 "--write-file-only-if-changed=1", # Always true for Ninja. FIXME: remove
54 # when everything switched to GN.
56 rebase_path("$bindings_output_dir/GlobalObjects.pickle", root_build_dir),
60 # GYP version: generated.gyp:global_constructors_idls
61 action("global_constructors_idls") {
62 script = "scripts/generate_global_constructors.py"
65 "scripts/generate_global_constructors.py",
66 "scripts/utilities.py",
67 "$bindings_output_dir/GlobalObjects.pickle",
68 # Only includes main IDL files (exclude dependencies and testing,
69 # which should not appear on global objects).
70 main_interface_idl_files_list,
71 ] + main_interface_idl_files
73 outputs = generated_global_constructors_idl_files +
74 generated_global_constructors_header_files
78 rebase_path(main_interface_idl_files_list, root_build_dir),
79 "--global-objects-file",
80 rebase_path("$bindings_output_dir/GlobalObjects.pickle", root_build_dir),
81 "--write-file-only-if-changed=1", # Always true for Ninja.
84 rebase_path("$blink_output_dir/WindowConstructors.idl", root_build_dir),
85 "SharedWorkerGlobalScope",
86 rebase_path("$blink_output_dir/SharedWorkerGlobalScopeConstructors.idl",
88 "DedicatedWorkerGlobalScope",
89 rebase_path("$blink_output_dir/DedicatedWorkerGlobalScopeConstructors.idl",
91 "ServiceWorkerGlobalScope",
92 rebase_path("$blink_output_dir/ServiceWorkerGlobalScopeConstructors.idl",
96 deps = [ ":global_objects" ]
99 # GYP version: generated.gyp:generated_idls
100 group("generated_idls") {
102 ":global_constructors_idls",
103 "//third_party/WebKit/Source/core:generated_testing_idls",