Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: BUILD.gn

Issue 334913004: Support external startup data in V8. (retry) (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: rebase + style fix Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | build/features.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 # TODO(jochen): These will need to be user-settable to support standalone V8 5 # TODO(jochen): These will need to be user-settable to support standalone V8
6 # builds. 6 # builds.
7 v8_compress_startup_data = "off" 7 v8_compress_startup_data = "off"
8 v8_deprecation_warnings = false 8 v8_deprecation_warnings = false
9 v8_enable_disassembler = false 9 v8_enable_disassembler = false
10 v8_enable_gdbjit = false 10 v8_enable_gdbjit = false
11 v8_enable_handle_zapping = true 11 v8_enable_handle_zapping = true
12 v8_enable_i18n_support = true 12 v8_enable_i18n_support = true
13 v8_enable_verify_heap = false 13 v8_enable_verify_heap = false
14 v8_interpreted_regexp = false 14 v8_interpreted_regexp = false
15 v8_object_print = false 15 v8_object_print = false
16 v8_postmortem_support = false 16 v8_postmortem_support = false
17 v8_use_default_platform = true 17 v8_use_default_platform = true
18 v8_use_snapshot = true 18 v8_use_snapshot = true
19 v8_use_external_startup_data = false
19 v8_enable_extra_checks = is_debug 20 v8_enable_extra_checks = is_debug
20 v8_target_arch = cpu_arch 21 v8_target_arch = cpu_arch
21 v8_random_seed = "314159265" 22 v8_random_seed = "314159265"
22 23
23 24
24 ############################################################################### 25 ###############################################################################
25 # Configurations 26 # Configurations
26 # 27 #
27 config("internal_config") { 28 config("internal_config") {
28 visibility = ":*" # Only targets in this file can depend on this. 29 visibility = ":*" # Only targets in this file can depend on this.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 if (v8_enable_extra_checks == true) { 103 if (v8_enable_extra_checks == true) {
103 defines += [ 104 defines += [
104 "ENABLE_EXTRA_CHECKS", 105 "ENABLE_EXTRA_CHECKS",
105 ] 106 ]
106 } 107 }
107 if (v8_enable_handle_zapping == true) { 108 if (v8_enable_handle_zapping == true) {
108 defines += [ 109 defines += [
109 "ENABLE_HANDLE_ZAPPING", 110 "ENABLE_HANDLE_ZAPPING",
110 ] 111 ]
111 } 112 }
113 if (v8_use_external_startup_data == true) {
114 defines += [
115 "V8_USE_EXTERNAL_STARTUP_DATA",
116 ]
117 }
112 } 118 }
113 119
114 config("toolchain") { 120 config("toolchain") {
115 visibility = ":*" # Only targets in this file can depend on this. 121 visibility = ":*" # Only targets in this file can depend on this.
116 122
117 defines = [] 123 defines = []
118 cflags = [] 124 cflags = []
119 125
120 # TODO(jochen): Add support for arm, mips, mipsel. 126 # TODO(jochen): Add support for arm, mips, mipsel.
121 127
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 ] 211 ]
206 212
207 outputs = [ 213 outputs = [
208 "$target_gen_dir/libraries.cc" 214 "$target_gen_dir/libraries.cc"
209 ] 215 ]
210 216
211 if (v8_enable_i18n_support) { 217 if (v8_enable_i18n_support) {
212 sources += [ "src/i18n.js" ] 218 sources += [ "src/i18n.js" ]
213 } 219 }
214 220
215 args = 221 args = [
216 rebase_path(outputs, root_build_dir) + 222 rebase_path("$target_gen_dir/libraries.cc", root_build_dir),
217 [ "CORE", v8_compress_startup_data ] + 223 "CORE",
218 rebase_path(sources, root_build_dir) 224 v8_compress_startup_data
225 ] + rebase_path(sources, root_build_dir)
226
227 if (v8_use_external_startup_data) {
228 outputs += [ "$target_gen_dir/libraries.bin" ]
229 args += [
230 "--startup_blob",
231 rebase_path("$target_gen_dir/libraries.bin", root_build_dir)
232 ]
233 }
219 } 234 }
220 235
221 action("js2c_experimental") { 236 action("js2c_experimental") {
222 visibility = ":*" # Only targets in this file can depend on this. 237 visibility = ":*" # Only targets in this file can depend on this.
223 238
224 script = "tools/js2c.py" 239 script = "tools/js2c.py"
225 240
226 # The script depends on this other script, this rule causes a rebuild if it 241 # The script depends on this other script, this rule causes a rebuild if it
227 # changes. 242 # changes.
228 source_prereqs = [ "tools/jsmin.py" ] 243 source_prereqs = [ "tools/jsmin.py" ]
229 244
230 sources = [ 245 sources = [
231 "src/macros.py", 246 "src/macros.py",
232 "src/symbol.js", 247 "src/symbol.js",
233 "src/proxy.js", 248 "src/proxy.js",
234 "src/collection.js", 249 "src/collection.js",
235 "src/collection-iterator.js", 250 "src/collection-iterator.js",
236 "src/generator.js", 251 "src/generator.js",
237 "src/array-iterator.js", 252 "src/array-iterator.js",
238 "src/harmony-string.js", 253 "src/harmony-string.js",
239 "src/harmony-array.js", 254 "src/harmony-array.js",
240 "src/harmony-math.js", 255 "src/harmony-math.js",
241 ] 256 ]
242 257
243 outputs = [ 258 outputs = [
244 "$target_gen_dir/experimental-libraries.cc" 259 "$target_gen_dir/experimental-libraries.cc"
245 ] 260 ]
246 261
247 args = 262 args = [
248 rebase_path(outputs, root_build_dir) + 263 rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir),
249 [ "EXPERIMENTAL", v8_compress_startup_data ] + 264 "EXPERIMENTAL",
250 rebase_path(sources, root_build_dir) 265 v8_compress_startup_data
266 ] + rebase_path(sources, root_build_dir)
267
268 if (v8_use_external_startup_data) {
269 outputs += [ "$target_gen_dir/libraries_experimental.bin" ]
270 args += [
271 "--startup_blob",
272 rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir)
273 ]
274 }
275 }
276
277 if (v8_use_external_startup_data) {
278 action("natives_blob") {
279 visibility = ":*" # Only targets in this file can depend on this.
280
281 deps = [
282 ":js2c",
283 ":js2c_experimental"
284 ]
285
286 sources = [
287 "$target_gen_dir/libraries.bin",
288 "$target_gen_dir/libraries_experimental.bin"
289 ]
290
291 outputs = [
292 "$root_gen_dir/natives_blob.bin"
293 ]
294
295 script = "tools/concatenate-files.py"
296
297 args = rebase_path(sources + outputs, root_build_dir)
298 }
251 } 299 }
252 300
253 action("postmortem-metadata") { 301 action("postmortem-metadata") {
254 visibility = ":*" # Only targets in this file can depend on this. 302 visibility = ":*" # Only targets in this file can depend on this.
255 303
256 script = "tools/gen-postmortem-metadata.py" 304 script = "tools/gen-postmortem-metadata.py"
257 305
258 sources = [ 306 sources = [
259 "src/objects.h", 307 "src/objects.h",
260 "src/objects-inl.h", 308 "src/objects-inl.h",
(...skipping 17 matching lines...) Expand all
278 326
279 outputs = [ 327 outputs = [
280 "$target_gen_dir/snapshot.cc" 328 "$target_gen_dir/snapshot.cc"
281 ] 329 ]
282 330
283 args = [ 331 args = [
284 "./" + rebase_path(get_label_info(":mksnapshot($host_toolchain)", 332 "./" + rebase_path(get_label_info(":mksnapshot($host_toolchain)",
285 "root_out_dir") + "/mksnapshot", 333 "root_out_dir") + "/mksnapshot",
286 root_build_dir), 334 root_build_dir),
287 "--log-snapshot-positions", 335 "--log-snapshot-positions",
288 "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir) 336 "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir),
337 rebase_path("$target_gen_dir/snapshot.cc", root_build_dir)
289 ] 338 ]
290 339
291 if (v8_random_seed != "0") { 340 if (v8_random_seed != "0") {
292 args += [ "--random-seed", v8_random_seed ] 341 args += [ "--random-seed", v8_random_seed ]
293 } 342 }
294 343
295 args += rebase_path(outputs, root_build_dir) 344 if (v8_use_external_startup_data) {
345 outputs += [ "$root_gen_dir/snapshot_blob.bin" ]
346 args += [
347 "--startup_blob",
348 rebase_path("$root_gen_dir/snapshot_blob.bin", root_build_dir)
349 ]
350 }
296 } 351 }
297 352
298 353
299 ############################################################################### 354 ###############################################################################
300 # Source Sets (aka static libraries) 355 # Source Sets (aka static libraries)
301 # 356 #
302 357
303 source_set("v8_nosnapshot") { 358 source_set("v8_nosnapshot") {
304 visibility = ":*" # Only targets in this file can depend on this. 359 visibility = ":*" # Only targets in this file can depend on this.
305 360
306 deps = [ 361 deps = [
307 ":js2c", 362 ":js2c",
308 ":js2c_experimental", 363 ":js2c_experimental",
309 ":generate_trig_table", 364 ":generate_trig_table",
310 ":v8_base", 365 ":v8_base",
311 ] 366 ]
312 367
313 sources = [ 368 sources = [
314 "$target_gen_dir/libraries.cc", 369 "$target_gen_dir/libraries.cc",
315 "$target_gen_dir/experimental-libraries.cc", 370 "$target_gen_dir/experimental-libraries.cc",
316 "$target_gen_dir/trig-table.cc", 371 "$target_gen_dir/trig-table.cc",
317 "src/snapshot-empty.cc", 372 "src/snapshot-empty.cc",
373 "src/snapshot-common.cc",
318 ] 374 ]
319 375
320 configs -= [ "//build/config/compiler:chromium_code" ] 376 configs -= [ "//build/config/compiler:chromium_code" ]
321 configs += [ "//build/config/compiler:no_chromium_code" ] 377 configs += [ "//build/config/compiler:no_chromium_code" ]
322 configs += [ ":internal_config", ":features", ":toolchain" ] 378 configs += [ ":internal_config", ":features", ":toolchain" ]
323 } 379 }
324 380
325 source_set("v8_snapshot") { 381 source_set("v8_snapshot") {
326 visibility = ":*" # Only targets in this file can depend on this. 382 visibility = ":*" # Only targets in this file can depend on this.
327 383
328 deps = [ 384 deps = [
329 ":js2c", 385 ":js2c",
330 ":js2c_experimental", 386 ":js2c_experimental",
331 ":generate_trig_table", 387 ":generate_trig_table",
332 ":run_mksnapshot", 388 ":run_mksnapshot",
333 ":v8_base", 389 ":v8_base",
334 ] 390 ]
335 391
336 sources = [ 392 sources = [
337 "$target_gen_dir/libraries.cc", 393 "$target_gen_dir/libraries.cc",
338 "$target_gen_dir/experimental-libraries.cc", 394 "$target_gen_dir/experimental-libraries.cc",
339 "$target_gen_dir/trig-table.cc", 395 "$target_gen_dir/trig-table.cc",
340 "$target_gen_dir/snapshot.cc", 396 "$target_gen_dir/snapshot.cc",
397 "src/snapshot-common.cc",
341 ] 398 ]
342 399
343 configs -= [ "//build/config/compiler:chromium_code" ] 400 configs -= [ "//build/config/compiler:chromium_code" ]
344 configs += [ "//build/config/compiler:no_chromium_code" ] 401 configs += [ "//build/config/compiler:no_chromium_code" ]
345 configs += [ ":internal_config", ":features", ":toolchain" ] 402 configs += [ ":internal_config", ":features", ":toolchain" ]
346 } 403 }
347 404
405 if (v8_use_external_startup_data) {
406 source_set("v8_external_snapshot") {
407 visibility = ":*" # Only targets in this file can depend on this.
408
409 deps = [
410 ":js2c",
411 ":js2c_experimental",
412 ":generate_trig_table",
413 ":run_mksnapshot",
414 ":v8_base",
415 ":natives_blob",
416 ]
417
418 sources = [
419 "$target_gen_dir/trig-table.cc",
420 "src/natives-external.cc",
421 "src/snapshot-external.cc",
422 ]
423
424 configs -= [ "//build/config/compiler:chromium_code" ]
425 configs += [ "//build/config/compiler:no_chromium_code" ]
426 configs += [ ":internal_config", ":features", ":toolchain" ]
427 }
428 }
429
348 source_set("v8_base") { 430 source_set("v8_base") {
349 visibility = ":*" # Only targets in this file can depend on this. 431 visibility = ":*" # Only targets in this file can depend on this.
350 432
351 sources = [ 433 sources = [
352 "src/accessors.cc", 434 "src/accessors.cc",
353 "src/accessors.h", 435 "src/accessors.h",
354 "src/allocation.cc", 436 "src/allocation.cc",
355 "src/allocation.h", 437 "src/allocation.h",
356 "src/allocation-site-scopes.cc", 438 "src/allocation-site-scopes.cc",
357 "src/allocation-site-scopes.h", 439 "src/allocation-site-scopes.h",
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 "src/scanner.cc", 723 "src/scanner.cc",
642 "src/scanner.h", 724 "src/scanner.h",
643 "src/scopeinfo.cc", 725 "src/scopeinfo.cc",
644 "src/scopeinfo.h", 726 "src/scopeinfo.h",
645 "src/scopes.cc", 727 "src/scopes.cc",
646 "src/scopes.h", 728 "src/scopes.h",
647 "src/serialize.cc", 729 "src/serialize.cc",
648 "src/serialize.h", 730 "src/serialize.h",
649 "src/small-pointer-list.h", 731 "src/small-pointer-list.h",
650 "src/smart-pointers.h", 732 "src/smart-pointers.h",
651 "src/snapshot-common.cc", 733 "src/snapshot-source-sink.cc",
734 "src/snapshot-source-sink.h",
652 "src/snapshot.h", 735 "src/snapshot.h",
653 "src/spaces-inl.h", 736 "src/spaces-inl.h",
654 "src/spaces.cc", 737 "src/spaces.cc",
655 "src/spaces.h", 738 "src/spaces.h",
656 "src/store-buffer-inl.h", 739 "src/store-buffer-inl.h",
657 "src/store-buffer.cc", 740 "src/store-buffer.cc",
658 "src/store-buffer.h", 741 "src/store-buffer.h",
659 "src/string-search.cc", 742 "src/string-search.cc",
660 "src/string-search.h", 743 "src/string-search.h",
661 "src/string-stream.cc", 744 "src/string-stream.cc",
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 # Public targets 1100 # Public targets
1018 # 1101 #
1019 1102
1020 if (component_mode == "shared_library") { 1103 if (component_mode == "shared_library") {
1021 1104
1022 component("v8") { 1105 component("v8") {
1023 sources = [ 1106 sources = [
1024 "src/v8dll-main.cc", 1107 "src/v8dll-main.cc",
1025 ] 1108 ]
1026 1109
1027 if (v8_use_snapshot) { 1110 if (v8_use_external_startup_data) {
1111 deps = [
1112 ":v8_base",
1113 ":v8_external_snapshot",
1114 ]
1115 } else if (v8_use_snapshot) {
1028 deps = [ 1116 deps = [
1029 ":v8_base", 1117 ":v8_base",
1030 ":v8_snapshot", 1118 ":v8_snapshot",
1031 ] 1119 ]
1032 } else { 1120 } else {
1033 deps = [ 1121 deps = [
1034 ":v8_base", 1122 ":v8_base",
1035 ":v8_nosnapshot", 1123 ":v8_nosnapshot",
1036 ] 1124 ]
1037 } 1125 }
1038 1126
1039 configs -= [ "//build/config/compiler:chromium_code" ] 1127 configs -= [ "//build/config/compiler:chromium_code" ]
1040 configs += [ "//build/config/compiler:no_chromium_code" ] 1128 configs += [ "//build/config/compiler:no_chromium_code" ]
1041 configs += [ ":internal_config", ":features", ":toolchain" ] 1129 configs += [ ":internal_config", ":features", ":toolchain" ]
1042 1130
1043 direct_dependent_configs = [ ":external_config" ] 1131 direct_dependent_configs = [ ":external_config" ]
1044 1132
1045 if (is_android && current_toolchain != host_toolchain) { 1133 if (is_android && current_toolchain != host_toolchain) {
1046 libs += [ "log" ] 1134 libs += [ "log" ]
1047 } 1135 }
1048 } 1136 }
1049 1137
1050 } else { 1138 } else {
1051 1139
1052 group("v8") { 1140 group("v8") {
1053 if (v8_use_snapshot) { 1141 if (v8_use_external_startup_data) {
1142 deps = [
1143 ":v8_base",
1144 ":v8_external_snapshot",
1145 ]
1146 } else if (v8_use_snapshot) {
1054 deps = [ 1147 deps = [
1055 ":v8_base", 1148 ":v8_base",
1056 ":v8_snapshot", 1149 ":v8_snapshot",
1057 ] 1150 ]
1058 } else { 1151 } else {
1059 deps = [ 1152 deps = [
1060 ":v8_base", 1153 ":v8_base",
1061 ":v8_nosnapshot", 1154 ":v8_nosnapshot",
1062 ] 1155 ]
1063 } 1156 }
1064 1157
1065 direct_dependent_configs = [ ":external_config" ] 1158 direct_dependent_configs = [ ":external_config" ]
1066 } 1159 }
1067 1160
1068 } 1161 }
OLDNEW
« no previous file with comments | « no previous file | build/features.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698