OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//testing/test.gni") | 5 import("//testing/test.gni") |
6 import("//v8/gni/v8.gni") | 6 import("//v8/gni/v8.gni") |
7 | 7 |
8 component("gin") { | 8 component("gin") { |
9 sources = [ | 9 sources = [ |
10 "arguments.cc", | 10 "arguments.cc", |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 ] | 70 ] |
71 | 71 |
72 if (v8_use_external_startup_data) { | 72 if (v8_use_external_startup_data) { |
73 data = [ | 73 data = [ |
74 "$root_out_dir/natives_blob.bin", | 74 "$root_out_dir/natives_blob.bin", |
75 "$root_out_dir/snapshot_blob.bin", | 75 "$root_out_dir/snapshot_blob.bin", |
76 ] | 76 ] |
77 } | 77 } |
78 | 78 |
79 defines = [ "GIN_IMPLEMENTATION" ] | 79 defines = [ "GIN_IMPLEMENTATION" ] |
80 | |
81 public_deps = [ | 80 public_deps = [ |
82 "//base", | 81 "//base", |
83 "//v8", | 82 "//v8", |
84 ] | 83 ] |
| 84 |
85 deps = [ | 85 deps = [ |
86 "//base/third_party/dynamic_annotations", | 86 "//base/third_party/dynamic_annotations", |
87 ] | 87 ] |
88 | 88 |
89 if (is_mac) { | 89 if (is_mac) { |
90 libs = [ "CoreFoundation.framework" ] | 90 libs = [ "CoreFoundation.framework" ] |
91 } | 91 } |
92 | 92 |
93 configs += [ "//v8:external_startup_data" ] | 93 configs += [ "//v8:external_startup_data" ] |
94 } | 94 } |
95 | 95 |
96 executable("gin_shell") { | 96 executable("gin_shell") { |
97 sources = [ | 97 sources = [ |
98 "shell/gin_main.cc", | 98 "shell/gin_main.cc", |
99 ] | 99 ] |
100 | 100 |
101 deps = [ | 101 deps = [ |
102 ":gin", | 102 ":gin", |
103 "//base", | 103 "//base", |
104 "//base:i18n", | 104 "//base:i18n", |
105 "//build/config:exe_and_shlib_deps", | 105 "//build/config:exe_and_shlib_deps", |
106 "//build/win:default_exe_manifest", | 106 "//build/win:default_exe_manifest", |
107 "//v8", | 107 "//v8", |
108 ] | 108 ] |
109 | 109 |
110 configs += [ "//v8:external_startup_data" ] | 110 configs += [ "//v8:external_startup_data" ] |
111 } | 111 } |
112 | 112 |
| 113 group("blink_v8_snapshot") { |
| 114 public_deps = [ |
| 115 ":generate_blink_v8_snapshot", |
| 116 ] |
| 117 } |
| 118 |
| 119 action("generate_blink_v8_snapshot") { |
| 120 script = "run.py" |
| 121 output_file = "$root_out_dir/blink_v8_snapshot.bin" |
| 122 output_path = rebase_path(output_file, root_build_dir) |
| 123 |
| 124 args = [ |
| 125 "./" + rebase_path( |
| 126 get_label_info(":blink_v8_snapshot_generator($host_toolchain)", |
| 127 "root_out_dir") + "/blink_v8_snapshot_generator", |
| 128 root_build_dir), |
| 129 "--output_file=$output_path", |
| 130 ] |
| 131 |
| 132 outputs = [ |
| 133 output_file, |
| 134 ] |
| 135 |
| 136 deps = [ |
| 137 ":blink_v8_snapshot_generator($host_toolchain)", |
| 138 ] |
| 139 } |
| 140 |
| 141 # This config disables a link time optimization "ICF", which may merge different |
| 142 # functions into one if the function signature and body of them are identical. |
| 143 config("disable_icf") { |
| 144 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 145 if (is_win) { |
| 146 ldflags = [ "/OPT:NOICF" ] |
| 147 } else if (is_posix && !is_mac) { |
| 148 ldflags = [ "-Wl,--icf=none" ] |
| 149 } |
| 150 } |
| 151 |
| 152 executable("blink_v8_snapshot_generator") { |
| 153 sources = [ |
| 154 "shell/blink_v8_snapshot_generator_main.cc", |
| 155 ] |
| 156 |
| 157 deps = [ |
| 158 ":gin", |
| 159 "//mojo/edk/system:system", |
| 160 "//third_party/WebKit/public:blink", |
| 161 "//v8", |
| 162 ] |
| 163 |
| 164 # Link time optimization "ICF" breaks 1:1 mappings of the external references |
| 165 # for V8 snapshot. So, we disable it while taking a V8 snapshot. |
| 166 configs += [ |
| 167 "//v8:external_startup_data", |
| 168 ":disable_icf", |
| 169 ] |
| 170 } |
| 171 |
113 source_set("gin_test") { | 172 source_set("gin_test") { |
114 testonly = true | 173 testonly = true |
115 sources = [ | 174 sources = [ |
116 "test/file.cc", | 175 "test/file.cc", |
117 "test/file.h", | 176 "test/file.h", |
118 "test/file_runner.cc", | 177 "test/file_runner.cc", |
119 "test/file_runner.h", | 178 "test/file_runner.h", |
120 "test/gc.cc", | 179 "test/gc.cc", |
121 "test/gc.h", | 180 "test/gc.h", |
122 "test/gtest.cc", | 181 "test/gtest.cc", |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 "shell/hello_world.js", | 231 "shell/hello_world.js", |
173 "test/file_unittests.js", | 232 "test/file_unittests.js", |
174 "test/gtest_unittests.js", | 233 "test/gtest_unittests.js", |
175 "../OWNERS", | 234 "../OWNERS", |
176 ] | 235 ] |
177 | 236 |
178 data_deps = [ | 237 data_deps = [ |
179 ":gin_shell", | 238 ":gin_shell", |
180 ] | 239 ] |
181 } | 240 } |
OLD | NEW |