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 # TODO(jochen): These will need to be user-settable to support standalone V8
7 v8_compress_startup_data = "off"
8 v8_enable_i18n_support = true
10 # TODO(jochen): Add support for want_seperate_host_toolset.
11 # TODO(jochen): Add support for v8_target_arch.
12 # TODO(jochen): Add features.gypi and toolchain.gypi support.
15 ###############################################################################
18 config("internal_config") {
19 visibility = ":*" # Only targets in this file can depend on this.
21 include_dirs = [ "src" ]
23 if (component_mode == "shared_library") {
31 ###############################################################################
35 # TODO(jochen): Do actions need visibility settings as well?
36 action("generate_trig_table") {
37 script = "tools/generate-trig-table.py"
40 "$target_gen_dir/trig-table.cc"
43 args = rebase_path(outputs, root_build_dir)
47 script = "tools/js2c.py"
49 # The script depends on this other script, this rule causes a rebuild if it
51 source_prereqs = [ "tools/jsmin.py" ]
62 "src/debug-debugger.js",
63 "src/mirror-debugger.js",
64 "src/liveedit-debugger.js",
70 "src/object-observe.js",
75 "$target_gen_dir/libraries.cc"
78 if (v8_enable_i18n_support) {
79 sources += [ "src/i18n.js" ]
83 rebase_path(outputs, root_build_dir) +
84 [ "EXPERIMENTAL", v8_compress_startup_data ] +
85 rebase_path(sources, root_build_dir)
88 action("js2c_experimental") {
89 script = "tools/js2c.py"
91 # The script depends on this other script, this rule causes a rebuild if it
93 source_prereqs = [ "tools/jsmin.py" ]
100 "src/weak_collection.js",
103 "src/array-iterator.js",
104 "src/harmony-string.js",
105 "src/harmony-array.js",
106 "src/harmony-math.js",
110 "$target_gen_dir/experimental-libraries.cc"
114 rebase_path(outputs, root_build_dir) +
115 [ "CORE", v8_compress_startup_data ] +
116 rebase_path(sources, root_build_dir)
119 action("postmortem-metadata") {
120 script = "tools/gen-postmortem-metadata.py"
128 "$target_gen_dir/debug-support.cc"
132 rebase_path(outputs, root_build_dir) +
133 rebase_path(sources, root_build_dir)
136 ###############################################################################
137 # Source Sets (aka static libraries)
140 source_set("v8_nosnapshot") {
141 visibility = ":*" # Only targets in this file can depend on this.
145 ":js2c_experimental",
146 ":generate_trig_table",
151 "$target_gen_dir/libraries.cc",
152 "$target_gen_dir/experimental-libraries.cc",
153 "$target_gen_dir/trig-table.cc",
154 "src/snapshot-empty.cc",
157 configs += [ ":internal_config" ]
160 source_set("v8_base") {
161 visibility = ":*" # Only targets in this file can depend on this.
168 "src/allocation-site-scopes.cc",
169 "src/allocation-site-scopes.h",
170 "src/allocation-tracker.cc",
171 "src/allocation-tracker.h",
178 "src/assert-scope.h",
179 "src/assert-scope.cc",
183 "src/atomicops_internals_x86_gcc.cc",
184 "src/bignum-dtoa.cc",
188 "src/bootstrapper.cc",
189 "src/bootstrapper.h",
192 "src/bytecodes-irregexp.h",
193 "src/cached-powers.cc",
194 "src/cached-powers.h",
195 "src/char-predicates-inl.h",
196 "src/char-predicates.h",
199 "src/circular-queue-inl.h",
200 "src/circular-queue.h",
203 "src/code-stubs-hydrogen.cc",
207 "src/compilation-cache.cc",
208 "src/compilation-cache.h",
213 "src/conversions-inl.h",
214 "src/conversions.cc",
218 "src/cpu-profiler-inl.h",
219 "src/cpu-profiler.cc",
220 "src/cpu-profiler.h",
227 "src/dateparser-inl.h",
230 "src/debug-agent.cc",
234 "src/deoptimizer.cc",
237 "src/disassembler.cc",
238 "src/disassembler.h",
245 "src/elements-kind.cc",
246 "src/elements-kind.h",
251 "src/extensions/externalize-string-extension.cc",
252 "src/extensions/externalize-string-extension.h",
253 "src/extensions/free-buffer-extension.cc",
254 "src/extensions/free-buffer-extension.h",
255 "src/extensions/gc-extension.cc",
256 "src/extensions/gc-extension.h",
257 "src/extensions/statistics-extension.cc",
258 "src/extensions/statistics-extension.h",
259 "src/extensions/trigger-failure-extension.cc",
260 "src/extensions/trigger-failure-extension.h",
265 "src/feedback-slots.h",
268 "src/flag-definitions.h",
274 "src/full-codegen.cc",
275 "src/full-codegen.h",
276 "src/func-name-inferrer.cc",
277 "src/func-name-inferrer.h",
280 "src/global-handles.cc",
281 "src/global-handles.h",
288 "src/heap-profiler.cc",
289 "src/heap-profiler.h",
290 "src/heap-snapshot-generator-inl.h",
291 "src/heap-snapshot-generator.cc",
292 "src/heap-snapshot-generator.h",
295 "src/hydrogen-alias-analysis.h",
296 "src/hydrogen-bce.cc",
297 "src/hydrogen-bce.h",
298 "src/hydrogen-bch.cc",
299 "src/hydrogen-bch.h",
300 "src/hydrogen-canonicalize.cc",
301 "src/hydrogen-canonicalize.h",
302 "src/hydrogen-check-elimination.cc",
303 "src/hydrogen-check-elimination.h",
304 "src/hydrogen-dce.cc",
305 "src/hydrogen-dce.h",
306 "src/hydrogen-dehoist.cc",
307 "src/hydrogen-dehoist.h",
308 "src/hydrogen-environment-liveness.cc",
309 "src/hydrogen-environment-liveness.h",
310 "src/hydrogen-escape-analysis.cc",
311 "src/hydrogen-escape-analysis.h",
312 "src/hydrogen-flow-engine.h",
313 "src/hydrogen-instructions.cc",
314 "src/hydrogen-instructions.h",
317 "src/hydrogen-gvn.cc",
318 "src/hydrogen-gvn.h",
319 "src/hydrogen-infer-representation.cc",
320 "src/hydrogen-infer-representation.h",
321 "src/hydrogen-infer-types.cc",
322 "src/hydrogen-infer-types.h",
323 "src/hydrogen-load-elimination.cc",
324 "src/hydrogen-load-elimination.h",
325 "src/hydrogen-mark-deoptimize.cc",
326 "src/hydrogen-mark-deoptimize.h",
327 "src/hydrogen-mark-unreachable.cc",
328 "src/hydrogen-mark-unreachable.h",
329 "src/hydrogen-osr.cc",
330 "src/hydrogen-osr.h",
331 "src/hydrogen-range-analysis.cc",
332 "src/hydrogen-range-analysis.h",
333 "src/hydrogen-redundant-phi.cc",
334 "src/hydrogen-redundant-phi.h",
335 "src/hydrogen-removable-simulates.cc",
336 "src/hydrogen-removable-simulates.h",
337 "src/hydrogen-representation-changes.cc",
338 "src/hydrogen-representation-changes.h",
339 "src/hydrogen-sce.cc",
340 "src/hydrogen-sce.h",
341 "src/hydrogen-store-elimination.cc",
342 "src/hydrogen-store-elimination.h",
343 "src/hydrogen-uint32-analysis.cc",
344 "src/hydrogen-uint32-analysis.h",
352 "src/incremental-marking.cc",
353 "src/incremental-marking.h",
356 "src/interpreter-irregexp.cc",
357 "src/interpreter-irregexp.h",
361 "src/json-stringifier.h",
362 "src/jsregexp-inl.h",
365 "src/lazy-instance.h",
366 # TODO(jochen): move libplatform/ files to their own target.
367 "src/libplatform/default-platform.cc",
368 "src/libplatform/default-platform.h",
369 "src/libplatform/task-queue.cc",
370 "src/libplatform/task-queue.h",
371 "src/libplatform/worker-thread.cc",
372 "src/libplatform/worker-thread.h",
375 "src/lithium-allocator-inl.h",
376 "src/lithium-allocator.cc",
377 "src/lithium-allocator.h",
378 "src/lithium-codegen.cc",
379 "src/lithium-codegen.h",
389 "src/macro-assembler.h",
390 "src/mark-compact.cc",
391 "src/mark-compact.h",
396 "src/objects-debug.cc",
398 "src/objects-printer.cc",
399 "src/objects-visiting.cc",
400 "src/objects-visiting.h",
405 "src/optimizing-compiler-thread.h",
406 "src/optimizing-compiler-thread.cc",
409 "src/platform/elapsed-timer.h",
410 "src/platform/time.cc",
411 "src/platform/time.h",
413 "src/platform/condition-variable.cc",
414 "src/platform/condition-variable.h",
415 "src/platform/mutex.cc",
416 "src/platform/mutex.h",
417 "src/platform/semaphore.cc",
418 "src/platform/semaphore.h",
419 "src/platform/socket.cc",
420 "src/platform/socket.h",
421 "src/preparse-data-format.h",
422 "src/preparse-data.cc",
423 "src/preparse-data.h",
426 "src/prettyprinter.cc",
427 "src/prettyprinter.h",
428 "src/profile-generator-inl.h",
429 "src/profile-generator.cc",
430 "src/profile-generator.h",
431 "src/property-details.h",
434 "src/regexp-macro-assembler-irregexp-inl.h",
435 "src/regexp-macro-assembler-irregexp.cc",
436 "src/regexp-macro-assembler-irregexp.h",
437 "src/regexp-macro-assembler-tracer.cc",
438 "src/regexp-macro-assembler-tracer.h",
439 "src/regexp-macro-assembler.cc",
440 "src/regexp-macro-assembler.h",
441 "src/regexp-stack.cc",
442 "src/regexp-stack.h",
445 "src/runtime-profiler.cc",
446 "src/runtime-profiler.h",
449 "src/safepoint-table.cc",
450 "src/safepoint-table.h",
453 "src/scanner-character-streams.cc",
454 "src/scanner-character-streams.h",
463 "src/small-pointer-list.h",
464 "src/smart-pointers.h",
465 "src/snapshot-common.cc",
470 "src/store-buffer-inl.h",
471 "src/store-buffer.cc",
472 "src/store-buffer.h",
473 "src/string-search.cc",
474 "src/string-search.h",
475 "src/string-stream.cc",
476 "src/string-stream.h",
481 "src/sweeper-thread.h",
482 "src/sweeper-thread.cc",
485 "src/transitions-inl.h",
486 "src/transitions.cc",
495 "src/unbound-queue-inl.h",
496 "src/unbound-queue.h",
505 "src/utils/random-number-generator.cc",
506 "src/utils/random-number-generator.h",
507 "src/v8-counters.cc",
520 "src/vm-state-inl.h",
527 if (cpu_arch == "x86") {
528 # TODO(brettw) the GYP file has
529 # or v8_target_arch=="mac" or OS=="mac"
530 # which I don't understand.
532 "src/ia32/assembler-ia32-inl.h",
533 "src/ia32/assembler-ia32.cc",
534 "src/ia32/assembler-ia32.h",
535 "src/ia32/builtins-ia32.cc",
536 "src/ia32/code-stubs-ia32.cc",
537 "src/ia32/code-stubs-ia32.h",
538 "src/ia32/codegen-ia32.cc",
539 "src/ia32/codegen-ia32.h",
540 "src/ia32/cpu-ia32.cc",
541 "src/ia32/debug-ia32.cc",
542 "src/ia32/deoptimizer-ia32.cc",
543 "src/ia32/disasm-ia32.cc",
544 "src/ia32/frames-ia32.cc",
545 "src/ia32/frames-ia32.h",
546 "src/ia32/full-codegen-ia32.cc",
547 "src/ia32/ic-ia32.cc",
548 "src/ia32/lithium-codegen-ia32.cc",
549 "src/ia32/lithium-codegen-ia32.h",
550 "src/ia32/lithium-gap-resolver-ia32.cc",
551 "src/ia32/lithium-gap-resolver-ia32.h",
552 "src/ia32/lithium-ia32.cc",
553 "src/ia32/lithium-ia32.h",
554 "src/ia32/macro-assembler-ia32.cc",
555 "src/ia32/macro-assembler-ia32.h",
556 "src/ia32/regexp-macro-assembler-ia32.cc",
557 "src/ia32/regexp-macro-assembler-ia32.h",
558 "src/ia32/stub-cache-ia32.cc",
560 } else if (cpu_arch == "x64") {
562 "src/x64/assembler-x64-inl.h",
563 "src/x64/assembler-x64.cc",
564 "src/x64/assembler-x64.h",
565 "src/x64/builtins-x64.cc",
566 "src/x64/code-stubs-x64.cc",
567 "src/x64/code-stubs-x64.h",
568 "src/x64/codegen-x64.cc",
569 "src/x64/codegen-x64.h",
570 "src/x64/cpu-x64.cc",
571 "src/x64/debug-x64.cc",
572 "src/x64/deoptimizer-x64.cc",
573 "src/x64/disasm-x64.cc",
574 "src/x64/frames-x64.cc",
575 "src/x64/frames-x64.h",
576 "src/x64/full-codegen-x64.cc",
578 "src/x64/lithium-codegen-x64.cc",
579 "src/x64/lithium-codegen-x64.h",
580 "src/x64/lithium-gap-resolver-x64.cc",
581 "src/x64/lithium-gap-resolver-x64.h",
582 "src/x64/lithium-x64.cc",
583 "src/x64/lithium-x64.h",
584 "src/x64/macro-assembler-x64.cc",
585 "src/x64/macro-assembler-x64.h",
586 "src/x64/regexp-macro-assembler-x64.cc",
587 "src/x64/regexp-macro-assembler-x64.h",
588 "src/x64/stub-cache-x64.cc",
590 } else if (cpu_arch == "arm") {
592 "src/arm/assembler-arm-inl.h",
593 "src/arm/assembler-arm.cc",
594 "src/arm/assembler-arm.h",
595 "src/arm/builtins-arm.cc",
596 "src/arm/code-stubs-arm.cc",
597 "src/arm/code-stubs-arm.h",
598 "src/arm/codegen-arm.cc",
599 "src/arm/codegen-arm.h",
600 "src/arm/constants-arm.h",
601 "src/arm/constants-arm.cc",
602 "src/arm/cpu-arm.cc",
603 "src/arm/debug-arm.cc",
604 "src/arm/deoptimizer-arm.cc",
605 "src/arm/disasm-arm.cc",
606 "src/arm/frames-arm.cc",
607 "src/arm/frames-arm.h",
608 "src/arm/full-codegen-arm.cc",
610 "src/arm/lithium-arm.cc",
611 "src/arm/lithium-arm.h",
612 "src/arm/lithium-codegen-arm.cc",
613 "src/arm/lithium-codegen-arm.h",
614 "src/arm/lithium-gap-resolver-arm.cc",
615 "src/arm/lithium-gap-resolver-arm.h",
616 "src/arm/macro-assembler-arm.cc",
617 "src/arm/macro-assembler-arm.h",
618 "src/arm/regexp-macro-assembler-arm.cc",
619 "src/arm/regexp-macro-assembler-arm.h",
620 "src/arm/simulator-arm.cc",
621 "src/arm/stub-cache-arm.cc",
623 } else if (cpu_arch == "arm64") {
625 "src/arm64/assembler-arm64.cc",
626 "src/arm64/assembler-arm64.h",
627 "src/arm64/assembler-arm64-inl.h",
628 "src/arm64/builtins-arm64.cc",
629 "src/arm64/codegen-arm64.cc",
630 "src/arm64/codegen-arm64.h",
631 "src/arm64/code-stubs-arm64.cc",
632 "src/arm64/code-stubs-arm64.h",
633 "src/arm64/constants-arm64.h",
634 "src/arm64/cpu-arm64.cc",
635 "src/arm64/cpu-arm64.h",
636 "src/arm64/debug-arm64.cc",
637 "src/arm64/decoder-arm64.cc",
638 "src/arm64/decoder-arm64.h",
639 "src/arm64/decoder-arm64-inl.h",
640 "src/arm64/deoptimizer-arm64.cc",
641 "src/arm64/disasm-arm64.cc",
642 "src/arm64/disasm-arm64.h",
643 "src/arm64/frames-arm64.cc",
644 "src/arm64/frames-arm64.h",
645 "src/arm64/full-codegen-arm64.cc",
646 "src/arm64/ic-arm64.cc",
647 "src/arm64/instructions-arm64.cc",
648 "src/arm64/instructions-arm64.h",
649 "src/arm64/instrument-arm64.cc",
650 "src/arm64/instrument-arm64.h",
651 "src/arm64/lithium-arm64.cc",
652 "src/arm64/lithium-arm64.h",
653 "src/arm64/lithium-codegen-arm64.cc",
654 "src/arm64/lithium-codegen-arm64.h",
655 "src/arm64/lithium-gap-resolver-arm64.cc",
656 "src/arm64/lithium-gap-resolver-arm64.h",
657 "src/arm64/macro-assembler-arm64.cc",
658 "src/arm64/macro-assembler-arm64.h",
659 "src/arm64/macro-assembler-arm64-inl.h",
660 "src/arm64/regexp-macro-assembler-arm64.cc",
661 "src/arm64/regexp-macro-assembler-arm64.h",
662 "src/arm64/simulator-arm64.cc",
663 "src/arm64/simulator-arm64.h",
664 "src/arm64/stub-cache-arm64.cc",
665 "src/arm64/utils-arm64.cc",
666 "src/arm64/utils-arm64.h",
668 } else if (cpu_arch == "mipsel") {
670 "src/mips/assembler-mips.cc",
671 "src/mips/assembler-mips.h",
672 "src/mips/assembler-mips-inl.h",
673 "src/mips/builtins-mips.cc",
674 "src/mips/codegen-mips.cc",
675 "src/mips/codegen-mips.h",
676 "src/mips/code-stubs-mips.cc",
677 "src/mips/code-stubs-mips.h",
678 "src/mips/constants-mips.cc",
679 "src/mips/constants-mips.h",
680 "src/mips/cpu-mips.cc",
681 "src/mips/debug-mips.cc",
682 "src/mips/deoptimizer-mips.cc",
683 "src/mips/disasm-mips.cc",
684 "src/mips/frames-mips.cc",
685 "src/mips/frames-mips.h",
686 "src/mips/full-codegen-mips.cc",
687 "src/mips/ic-mips.cc",
688 "src/mips/lithium-codegen-mips.cc",
689 "src/mips/lithium-codegen-mips.h",
690 "src/mips/lithium-gap-resolver-mips.cc",
691 "src/mips/lithium-gap-resolver-mips.h",
692 "src/mips/lithium-mips.cc",
693 "src/mips/lithium-mips.h",
694 "src/mips/macro-assembler-mips.cc",
695 "src/mips/macro-assembler-mips.h",
696 "src/mips/regexp-macro-assembler-mips.cc",
697 "src/mips/regexp-macro-assembler-mips.h",
698 "src/mips/simulator-mips.cc",
699 "src/mips/stub-cache-mips.cc",
703 configs += [ ":internal_config" ]
710 "src/platform-posix.cc"
716 "src/platform-linux.cc"
721 # ['v8_compress_startup_data=="bz2"', {
729 } else if (is_android) {
730 # TODO(brettw) OS=="android" condition from tools/gyp/v8.gyp
732 sources += [ "src/platform-macos,cc" ]
735 "src/platform-win32.cc",
740 defines += [ "_CRT_RAND_S" ] # for rand_s()
742 libs = [ "winmm.lib", "ws2_32.lib" ]
746 if (v8_enable_i18n_support) {
747 deps += [ "//third_party/icu" ]
749 deps += [ "//third_party/icu:icudata" ]
758 # TODO(brettw) other conditions from v8.gyp
759 # TODO(brettw) icu_use_data_file_flag
762 ###############################################################################
766 # TODO(jochen): Remove this as soon as toolchain.gypi is integrated.
767 if (build_cpu_arch != cpu_arch) {
769 executable("mksnapshot") {
776 executable("mksnapshot") {
781 configs += [ ":internal_config" ]
788 if (v8_compress_startup_data == "bz2") {