1 # Copyright 2012 the V8 project authors. All rights reserved. 2 # Redistribution and use in source and binary forms, with or without 3 # modification, are permitted provided that the following conditions are 4 # met: 5 # 6 # * Redistributions of source code must retain the above copyright 7 # notice, this list of conditions and the following disclaimer. 8 # * Redistributions in binary form must reproduce the above 9 # copyright notice, this list of conditions and the following 10 # disclaimer in the documentation and/or other materials provided 11 # with the distribution. 12 # * Neither the name of Google Inc. nor the names of its 13 # contributors may be used to endorse or promote products derived 14 # from this software without specific prior written permission. 15 # 16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 28 { 29 'variables': { 30 'v8_code': 1, 31 'v8_random_seed%': 314159265, 32 }, 33 'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'], 34 'targets': [ 35 { 36 'target_name': 'v8', 37 'dependencies_traverse': 1, 38 'conditions': [ 39 ['want_separate_host_toolset==1', { 40 'toolsets': ['host', 'target'], 41 }, { 42 'toolsets': ['target'], 43 }], 44 ['v8_use_snapshot=="true"', { 45 # The dependency on v8_base should come from a transitive 46 # dependency however the Android toolchain requires libv8_base.a 47 # to appear before libv8_snapshot.a so it's listed explicitly. 48 'dependencies': ['v8_base.<(v8_target_arch)', 'v8_snapshot'], 49 }, 50 { 51 # The dependency on v8_base should come from a transitive 52 # dependency however the Android toolchain requires libv8_base.a 53 # to appear before libv8_snapshot.a so it's listed explicitly. 54 'dependencies': [ 55 'v8_base.<(v8_target_arch)', 56 'v8_nosnapshot.<(v8_target_arch)', 57 ], 58 }], 59 ['component=="shared_library"', { 60 'type': '<(component)', 61 'sources': [ 62 # Note: on non-Windows we still build this file so that gyp 63 # has some sources to link into the component. 64 '../../src/v8dll-main.cc', 65 ], 66 'defines': [ 67 'V8_SHARED', 68 'BUILDING_V8_SHARED', 69 ], 70 'direct_dependent_settings': { 71 'defines': [ 72 'V8_SHARED', 73 'USING_V8_SHARED', 74 ], 75 }, 76 'target_conditions': [ 77 ['OS=="android" and _toolset=="target"', { 78 'libraries': [ 79 '-llog', 80 ], 81 'include_dirs': [ 82 'src/common/android/include', 83 ], 84 }], 85 ], 86 'conditions': [ 87 ['OS=="mac"', { 88 'xcode_settings': { 89 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load'] 90 }, 91 }], 92 ['soname_version!=""', { 93 'product_extension': 'so.<(soname_version)', 94 }], 95 ], 96 }, 97 { 98 'type': 'none', 99 }], 100 ], 101 'direct_dependent_settings': { 102 'include_dirs': [ 103 '../../include', 104 ], 105 }, 106 }, 107 { 108 'target_name': 'v8_snapshot', 109 'type': 'static_library', 110 'conditions': [ 111 ['want_separate_host_toolset==1', { 112 'toolsets': ['host', 'target'], 113 'dependencies': [ 114 'mksnapshot.<(v8_target_arch)#host', 115 'js2c#host', 116 'generate_trig_table#host', 117 ], 118 }, { 119 'toolsets': ['target'], 120 'dependencies': [ 121 'mksnapshot.<(v8_target_arch)', 122 'js2c', 123 'generate_trig_table', 124 ], 125 }], 126 ['component=="shared_library"', { 127 'defines': [ 128 'V8_SHARED', 129 'BUILDING_V8_SHARED', 130 ], 131 'direct_dependent_settings': { 132 'defines': [ 133 'V8_SHARED', 134 'USING_V8_SHARED', 135 ], 136 }, 137 }], 138 ], 139 'dependencies': [ 140 'v8_base.<(v8_target_arch)', 141 ], 142 'include_dirs+': [ 143 '../../src', 144 ], 145 'sources': [ 146 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 147 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 148 '<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', 149 '<(INTERMEDIATE_DIR)/snapshot.cc', 150 ], 151 'actions': [ 152 { 153 'action_name': 'run_mksnapshot', 154 'inputs': [ 155 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot.<(v8_target_arch)<(EXECUTABLE_SUFFIX)', 156 ], 157 'outputs': [ 158 '<(INTERMEDIATE_DIR)/snapshot.cc', 159 ], 160 'variables': { 161 'mksnapshot_flags': [ 162 '--log-snapshot-positions', 163 '--logfile', '<(INTERMEDIATE_DIR)/snapshot.log', 164 ], 165 'conditions': [ 166 ['v8_random_seed!=0', { 167 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], 168 }], 169 ], 170 }, 171 'action': [ 172 '<@(_inputs)', 173 '<@(mksnapshot_flags)', 174 '<@(_outputs)' 175 ], 176 }, 177 ], 178 }, 179 { 180 'target_name': 'v8_nosnapshot.<(v8_target_arch)', 181 'type': 'static_library', 182 'dependencies': [ 183 'v8_base.<(v8_target_arch)', 184 ], 185 'include_dirs+': [ 186 '../../src', 187 ], 188 'sources': [ 189 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 190 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 191 '<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', 192 '../../src/snapshot-empty.cc', 193 ], 194 'conditions': [ 195 ['want_separate_host_toolset==1', { 196 'toolsets': ['host', 'target'], 197 'dependencies': ['js2c#host', 'generate_trig_table#host'], 198 }, { 199 'toolsets': ['target'], 200 'dependencies': ['js2c', 'generate_trig_table'], 201 }], 202 ['component=="shared_library"', { 203 'defines': [ 204 'BUILDING_V8_SHARED', 205 'V8_SHARED', 206 ], 207 }], 208 ] 209 }, 210 { 'target_name': 'generate_trig_table', 211 'type': 'none', 212 'conditions': [ 213 ['want_separate_host_toolset==1', { 214 'toolsets': ['host'], 215 }, { 216 'toolsets': ['target'], 217 }], 218 ], 219 'actions': [ 220 { 221 'action_name': 'generate', 222 'inputs': [ 223 '../../tools/generate-trig-table.py', 224 ], 225 'outputs': [ 226 '<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', 227 ], 228 'action': [ 229 'python', 230 '../../tools/generate-trig-table.py', 231 '<@(_outputs)', 232 ], 233 }, 234 ] 235 }, 236 { 237 'target_name': 'v8_base.<(v8_target_arch)', 238 'type': 'static_library', 239 'variables': { 240 'optimize': 'max', 241 }, 242 'include_dirs+': [ 243 '../../src', 244 ], 245 'sources': [ ### gcmole(all) ### 246 '../../src/accessors.cc', 247 '../../src/accessors.h', 248 '../../src/allocation.cc', 249 '../../src/allocation.h', 250 '../../src/allocation-site-scopes.cc', 251 '../../src/allocation-site-scopes.h', 252 '../../src/allocation-tracker.cc', 253 '../../src/allocation-tracker.h', 254 '../../src/api.cc', 255 '../../src/api.h', 256 '../../src/apiutils.h', 257 '../../src/arguments.cc', 258 '../../src/arguments.h', 259 '../../src/assembler.cc', 260 '../../src/assembler.h', 261 '../../src/assert-scope.h', 262 '../../src/ast.cc', 263 '../../src/ast.h', 264 '../../src/atomicops.h', 265 '../../src/atomicops_internals_x86_gcc.cc', 266 '../../src/bignum-dtoa.cc', 267 '../../src/bignum-dtoa.h', 268 '../../src/bignum.cc', 269 '../../src/bignum.h', 270 '../../src/bootstrapper.cc', 271 '../../src/bootstrapper.h', 272 '../../src/builtins.cc', 273 '../../src/builtins.h', 274 '../../src/bytecodes-irregexp.h', 275 '../../src/cached-powers.cc', 276 '../../src/cached-powers.h', 277 '../../src/char-predicates-inl.h', 278 '../../src/char-predicates.h', 279 '../../src/checks.cc', 280 '../../src/checks.h', 281 '../../src/circular-queue-inl.h', 282 '../../src/circular-queue.h', 283 '../../src/code-stubs.cc', 284 '../../src/code-stubs.h', 285 '../../src/code-stubs-hydrogen.cc', 286 '../../src/code.h', 287 '../../src/codegen.cc', 288 '../../src/codegen.h', 289 '../../src/compilation-cache.cc', 290 '../../src/compilation-cache.h', 291 '../../src/compiler.cc', 292 '../../src/compiler.h', 293 '../../src/contexts.cc', 294 '../../src/contexts.h', 295 '../../src/conversions-inl.h', 296 '../../src/conversions.cc', 297 '../../src/conversions.h', 298 '../../src/counters.cc', 299 '../../src/counters.h', 300 '../../src/cpu-profiler-inl.h', 301 '../../src/cpu-profiler.cc', 302 '../../src/cpu-profiler.h', 303 '../../src/cpu.cc', 304 '../../src/cpu.h', 305 '../../src/data-flow.cc', 306 '../../src/data-flow.h', 307 '../../src/date.cc', 308 '../../src/date.h', 309 '../../src/dateparser-inl.h', 310 '../../src/dateparser.cc', 311 '../../src/dateparser.h', 312 '../../src/debug-agent.cc', 313 '../../src/debug-agent.h', 314 '../../src/debug.cc', 315 '../../src/debug.h', 316 '../../src/default-platform.cc', 317 '../../src/default-platform.h', 318 '../../src/deoptimizer.cc', 319 '../../src/deoptimizer.h', 320 '../../src/disasm.h', 321 '../../src/disassembler.cc', 322 '../../src/disassembler.h', 323 '../../src/diy-fp.cc', 324 '../../src/diy-fp.h', 325 '../../src/double.h', 326 '../../src/dtoa.cc', 327 '../../src/dtoa.h', 328 '../../src/effects.h', 329 '../../src/elements-kind.cc', 330 '../../src/elements-kind.h', 331 '../../src/elements.cc', 332 '../../src/elements.h', 333 '../../src/execution.cc', 334 '../../src/execution.h', 335 '../../src/extensions/externalize-string-extension.cc', 336 '../../src/extensions/externalize-string-extension.h', 337 '../../src/extensions/free-buffer-extension.cc', 338 '../../src/extensions/free-buffer-extension.h', 339 '../../src/extensions/gc-extension.cc', 340 '../../src/extensions/gc-extension.h', 341 '../../src/extensions/statistics-extension.cc', 342 '../../src/extensions/statistics-extension.h', 343 '../../src/factory.cc', 344 '../../src/factory.h', 345 '../../src/fast-dtoa.cc', 346 '../../src/fast-dtoa.h', 347 '../../src/fixed-dtoa.cc', 348 '../../src/fixed-dtoa.h', 349 '../../src/flag-definitions.h', 350 '../../src/flags.cc', 351 '../../src/flags.h', 352 '../../src/frames-inl.h', 353 '../../src/frames.cc', 354 '../../src/frames.h', 355 '../../src/full-codegen.cc', 356 '../../src/full-codegen.h', 357 '../../src/func-name-inferrer.cc', 358 '../../src/func-name-inferrer.h', 359 '../../src/gdb-jit.cc', 360 '../../src/gdb-jit.h', 361 '../../src/global-handles.cc', 362 '../../src/global-handles.h', 363 '../../src/globals.h', 364 '../../src/handles-inl.h', 365 '../../src/handles.cc', 366 '../../src/handles.h', 367 '../../src/hashmap.h', 368 '../../src/heap-inl.h', 369 '../../src/heap-profiler.cc', 370 '../../src/heap-profiler.h', 371 '../../src/heap-snapshot-generator-inl.h', 372 '../../src/heap-snapshot-generator.cc', 373 '../../src/heap-snapshot-generator.h', 374 '../../src/heap.cc', 375 '../../src/heap.h', 376 '../../src/hydrogen-alias-analysis.h', 377 '../../src/hydrogen-bce.cc', 378 '../../src/hydrogen-bce.h', 379 '../../src/hydrogen-bch.cc', 380 '../../src/hydrogen-bch.h', 381 '../../src/hydrogen-canonicalize.cc', 382 '../../src/hydrogen-canonicalize.h', 383 '../../src/hydrogen-check-elimination.cc', 384 '../../src/hydrogen-check-elimination.h', 385 '../../src/hydrogen-dce.cc', 386 '../../src/hydrogen-dce.h', 387 '../../src/hydrogen-dehoist.cc', 388 '../../src/hydrogen-dehoist.h', 389 '../../src/hydrogen-environment-liveness.cc', 390 '../../src/hydrogen-environment-liveness.h', 391 '../../src/hydrogen-escape-analysis.cc', 392 '../../src/hydrogen-escape-analysis.h', 393 '../../src/hydrogen-flow-engine.h', 394 '../../src/hydrogen-instructions.cc', 395 '../../src/hydrogen-instructions.h', 396 '../../src/hydrogen.cc', 397 '../../src/hydrogen.h', 398 '../../src/hydrogen-gvn.cc', 399 '../../src/hydrogen-gvn.h', 400 '../../src/hydrogen-infer-representation.cc', 401 '../../src/hydrogen-infer-representation.h', 402 '../../src/hydrogen-infer-types.cc', 403 '../../src/hydrogen-infer-types.h', 404 '../../src/hydrogen-load-elimination.cc', 405 '../../src/hydrogen-load-elimination.h', 406 '../../src/hydrogen-mark-deoptimize.cc', 407 '../../src/hydrogen-mark-deoptimize.h', 408 '../../src/hydrogen-mark-unreachable.cc', 409 '../../src/hydrogen-mark-unreachable.h', 410 '../../src/hydrogen-minus-zero.cc', 411 '../../src/hydrogen-minus-zero.h', 412 '../../src/hydrogen-osr.cc', 413 '../../src/hydrogen-osr.h', 414 '../../src/hydrogen-range-analysis.cc', 415 '../../src/hydrogen-range-analysis.h', 416 '../../src/hydrogen-redundant-phi.cc', 417 '../../src/hydrogen-redundant-phi.h', 418 '../../src/hydrogen-removable-simulates.cc', 419 '../../src/hydrogen-removable-simulates.h', 420 '../../src/hydrogen-representation-changes.cc', 421 '../../src/hydrogen-representation-changes.h', 422 '../../src/hydrogen-sce.cc', 423 '../../src/hydrogen-sce.h', 424 '../../src/hydrogen-uint32-analysis.cc', 425 '../../src/hydrogen-uint32-analysis.h', 426 '../../src/i18n.cc', 427 '../../src/i18n.h', 428 '../../src/icu_util.cc', 429 '../../src/icu_util.h', 430 '../../src/ic-inl.h', 431 '../../src/ic.cc', 432 '../../src/ic.h', 433 '../../src/incremental-marking.cc', 434 '../../src/incremental-marking.h', 435 '../../src/interface.cc', 436 '../../src/interface.h', 437 '../../src/interpreter-irregexp.cc', 438 '../../src/interpreter-irregexp.h', 439 '../../src/isolate.cc', 440 '../../src/isolate.h', 441 '../../src/json-parser.h', 442 '../../src/json-stringifier.h', 443 '../../src/jsregexp-inl.h', 444 '../../src/jsregexp.cc', 445 '../../src/jsregexp.h', 446 '../../src/lazy-instance.h', 447 '../../src/list-inl.h', 448 '../../src/list.h', 449 '../../src/lithium-allocator-inl.h', 450 '../../src/lithium-allocator.cc', 451 '../../src/lithium-allocator.h', 452 '../../src/lithium-codegen.cc', 453 '../../src/lithium-codegen.h', 454 '../../src/lithium.cc', 455 '../../src/lithium.h', 456 '../../src/liveedit.cc', 457 '../../src/liveedit.h', 458 '../../src/log-inl.h', 459 '../../src/log-utils.cc', 460 '../../src/log-utils.h', 461 '../../src/log.cc', 462 '../../src/log.h', 463 '../../src/macro-assembler.h', 464 '../../src/mark-compact.cc', 465 '../../src/mark-compact.h', 466 '../../src/messages.cc', 467 '../../src/messages.h', 468 '../../src/natives.h', 469 '../../src/objects-debug.cc', 470 '../../src/objects-inl.h', 471 '../../src/objects-printer.cc', 472 '../../src/objects-visiting.cc', 473 '../../src/objects-visiting.h', 474 '../../src/objects.cc', 475 '../../src/objects.h', 476 '../../src/once.cc', 477 '../../src/once.h', 478 '../../src/optimizing-compiler-thread.h', 479 '../../src/optimizing-compiler-thread.cc', 480 '../../src/parser.cc', 481 '../../src/parser.h', 482 '../../src/platform/elapsed-timer.h', 483 '../../src/platform/time.cc', 484 '../../src/platform/time.h', 485 '../../src/platform.h', 486 '../../src/platform/condition-variable.cc', 487 '../../src/platform/condition-variable.h', 488 '../../src/platform/mutex.cc', 489 '../../src/platform/mutex.h', 490 '../../src/platform/semaphore.cc', 491 '../../src/platform/semaphore.h', 492 '../../src/platform/socket.cc', 493 '../../src/platform/socket.h', 494 '../../src/preparse-data-format.h', 495 '../../src/preparse-data.cc', 496 '../../src/preparse-data.h', 497 '../../src/preparser.cc', 498 '../../src/preparser.h', 499 '../../src/prettyprinter.cc', 500 '../../src/prettyprinter.h', 501 '../../src/profile-generator-inl.h', 502 '../../src/profile-generator.cc', 503 '../../src/profile-generator.h', 504 '../../src/property-details.h', 505 '../../src/property.cc', 506 '../../src/property.h', 507 '../../src/regexp-macro-assembler-irregexp-inl.h', 508 '../../src/regexp-macro-assembler-irregexp.cc', 509 '../../src/regexp-macro-assembler-irregexp.h', 510 '../../src/regexp-macro-assembler-tracer.cc', 511 '../../src/regexp-macro-assembler-tracer.h', 512 '../../src/regexp-macro-assembler.cc', 513 '../../src/regexp-macro-assembler.h', 514 '../../src/regexp-stack.cc', 515 '../../src/regexp-stack.h', 516 '../../src/rewriter.cc', 517 '../../src/rewriter.h', 518 '../../src/runtime-profiler.cc', 519 '../../src/runtime-profiler.h', 520 '../../src/runtime.cc', 521 '../../src/runtime.h', 522 '../../src/safepoint-table.cc', 523 '../../src/safepoint-table.h', 524 '../../src/sampler.cc', 525 '../../src/sampler.h', 526 '../../src/scanner-character-streams.cc', 527 '../../src/scanner-character-streams.h', 528 '../../src/scanner.cc', 529 '../../src/scanner.h', 530 '../../src/scopeinfo.cc', 531 '../../src/scopeinfo.h', 532 '../../src/scopes.cc', 533 '../../src/scopes.h', 534 '../../src/serialize.cc', 535 '../../src/serialize.h', 536 '../../src/small-pointer-list.h', 537 '../../src/smart-pointers.h', 538 '../../src/snapshot-common.cc', 539 '../../src/snapshot.h', 540 '../../src/spaces-inl.h', 541 '../../src/spaces.cc', 542 '../../src/spaces.h', 543 '../../src/store-buffer-inl.h', 544 '../../src/store-buffer.cc', 545 '../../src/store-buffer.h', 546 '../../src/string-search.cc', 547 '../../src/string-search.h', 548 '../../src/string-stream.cc', 549 '../../src/string-stream.h', 550 '../../src/strtod.cc', 551 '../../src/strtod.h', 552 '../../src/stub-cache.cc', 553 '../../src/stub-cache.h', 554 '../../src/sweeper-thread.h', 555 '../../src/sweeper-thread.cc', 556 '../../src/token.cc', 557 '../../src/token.h', 558 '../../src/transitions-inl.h', 559 '../../src/transitions.cc', 560 '../../src/transitions.h', 561 '../../src/type-info.cc', 562 '../../src/type-info.h', 563 '../../src/types.cc', 564 '../../src/types.h', 565 '../../src/typing.cc', 566 '../../src/typing.h', 567 '../../src/unbound-queue-inl.h', 568 '../../src/unbound-queue.h', 569 '../../src/unicode-inl.h', 570 '../../src/unicode.cc', 571 '../../src/unicode.h', 572 '../../src/unique.h', 573 '../../src/uri.h', 574 '../../src/utils-inl.h', 575 '../../src/utils.cc', 576 '../../src/utils.h', 577 '../../src/utils/random-number-generator.cc', 578 '../../src/utils/random-number-generator.h', 579 '../../src/v8-counters.cc', 580 '../../src/v8-counters.h', 581 '../../src/v8.cc', 582 '../../src/v8.h', 583 '../../src/v8checks.h', 584 '../../src/v8conversions.cc', 585 '../../src/v8conversions.h', 586 '../../src/v8globals.h', 587 '../../src/v8memory.h', 588 '../../src/v8threads.cc', 589 '../../src/v8threads.h', 590 '../../src/v8utils.cc', 591 '../../src/v8utils.h', 592 '../../src/variables.cc', 593 '../../src/variables.h', 594 '../../src/version.cc', 595 '../../src/version.h', 596 '../../src/vm-state-inl.h', 597 '../../src/vm-state.h', 598 '../../src/zone-inl.h', 599 '../../src/zone.cc', 600 '../../src/zone.h', 601 ], 602 'conditions': [ 603 ['want_separate_host_toolset==1', { 604 'toolsets': ['host', 'target'], 605 }, { 606 'toolsets': ['target'], 607 }], 608 ['v8_target_arch=="arm"', { 609 'sources': [ ### gcmole(arch:arm) ### 610 '../../src/arm/assembler-arm-inl.h', 611 '../../src/arm/assembler-arm.cc', 612 '../../src/arm/assembler-arm.h', 613 '../../src/arm/builtins-arm.cc', 614 '../../src/arm/code-stubs-arm.cc', 615 '../../src/arm/code-stubs-arm.h', 616 '../../src/arm/codegen-arm.cc', 617 '../../src/arm/codegen-arm.h', 618 '../../src/arm/constants-arm.h', 619 '../../src/arm/constants-arm.cc', 620 '../../src/arm/cpu-arm.cc', 621 '../../src/arm/debug-arm.cc', 622 '../../src/arm/deoptimizer-arm.cc', 623 '../../src/arm/disasm-arm.cc', 624 '../../src/arm/frames-arm.cc', 625 '../../src/arm/frames-arm.h', 626 '../../src/arm/full-codegen-arm.cc', 627 '../../src/arm/ic-arm.cc', 628 '../../src/arm/lithium-arm.cc', 629 '../../src/arm/lithium-arm.h', 630 '../../src/arm/lithium-codegen-arm.cc', 631 '../../src/arm/lithium-codegen-arm.h', 632 '../../src/arm/lithium-gap-resolver-arm.cc', 633 '../../src/arm/lithium-gap-resolver-arm.h', 634 '../../src/arm/macro-assembler-arm.cc', 635 '../../src/arm/macro-assembler-arm.h', 636 '../../src/arm/regexp-macro-assembler-arm.cc', 637 '../../src/arm/regexp-macro-assembler-arm.h', 638 '../../src/arm/simulator-arm.cc', 639 '../../src/arm/stub-cache-arm.cc', 640 ], 641 }], 642 ['v8_target_arch=="ia32" or v8_target_arch=="mac" or OS=="mac"', { 643 'sources': [ ### gcmole(arch:ia32) ### 644 '../../src/ia32/assembler-ia32-inl.h', 645 '../../src/ia32/assembler-ia32.cc', 646 '../../src/ia32/assembler-ia32.h', 647 '../../src/ia32/builtins-ia32.cc', 648 '../../src/ia32/code-stubs-ia32.cc', 649 '../../src/ia32/code-stubs-ia32.h', 650 '../../src/ia32/codegen-ia32.cc', 651 '../../src/ia32/codegen-ia32.h', 652 '../../src/ia32/cpu-ia32.cc', 653 '../../src/ia32/debug-ia32.cc', 654 '../../src/ia32/deoptimizer-ia32.cc', 655 '../../src/ia32/disasm-ia32.cc', 656 '../../src/ia32/frames-ia32.cc', 657 '../../src/ia32/frames-ia32.h', 658 '../../src/ia32/full-codegen-ia32.cc', 659 '../../src/ia32/ic-ia32.cc', 660 '../../src/ia32/lithium-codegen-ia32.cc', 661 '../../src/ia32/lithium-codegen-ia32.h', 662 '../../src/ia32/lithium-gap-resolver-ia32.cc', 663 '../../src/ia32/lithium-gap-resolver-ia32.h', 664 '../../src/ia32/lithium-ia32.cc', 665 '../../src/ia32/lithium-ia32.h', 666 '../../src/ia32/macro-assembler-ia32.cc', 667 '../../src/ia32/macro-assembler-ia32.h', 668 '../../src/ia32/regexp-macro-assembler-ia32.cc', 669 '../../src/ia32/regexp-macro-assembler-ia32.h', 670 '../../src/ia32/stub-cache-ia32.cc', 671 ], 672 }], 673 ['v8_target_arch=="mipsel"', { 674 'sources': [ ### gcmole(arch:mipsel) ### 675 '../../src/mips/assembler-mips.cc', 676 '../../src/mips/assembler-mips.h', 677 '../../src/mips/assembler-mips-inl.h', 678 '../../src/mips/builtins-mips.cc', 679 '../../src/mips/codegen-mips.cc', 680 '../../src/mips/codegen-mips.h', 681 '../../src/mips/code-stubs-mips.cc', 682 '../../src/mips/code-stubs-mips.h', 683 '../../src/mips/constants-mips.cc', 684 '../../src/mips/constants-mips.h', 685 '../../src/mips/cpu-mips.cc', 686 '../../src/mips/debug-mips.cc', 687 '../../src/mips/deoptimizer-mips.cc', 688 '../../src/mips/disasm-mips.cc', 689 '../../src/mips/frames-mips.cc', 690 '../../src/mips/frames-mips.h', 691 '../../src/mips/full-codegen-mips.cc', 692 '../../src/mips/ic-mips.cc', 693 '../../src/mips/lithium-codegen-mips.cc', 694 '../../src/mips/lithium-codegen-mips.h', 695 '../../src/mips/lithium-gap-resolver-mips.cc', 696 '../../src/mips/lithium-gap-resolver-mips.h', 697 '../../src/mips/lithium-mips.cc', 698 '../../src/mips/lithium-mips.h', 699 '../../src/mips/macro-assembler-mips.cc', 700 '../../src/mips/macro-assembler-mips.h', 701 '../../src/mips/regexp-macro-assembler-mips.cc', 702 '../../src/mips/regexp-macro-assembler-mips.h', 703 '../../src/mips/simulator-mips.cc', 704 '../../src/mips/stub-cache-mips.cc', 705 ], 706 }], 707 ['v8_target_arch=="x64" or v8_target_arch=="mac" or OS=="mac"', { 708 'sources': [ ### gcmole(arch:x64) ### 709 '../../src/x64/assembler-x64-inl.h', 710 '../../src/x64/assembler-x64.cc', 711 '../../src/x64/assembler-x64.h', 712 '../../src/x64/builtins-x64.cc', 713 '../../src/x64/code-stubs-x64.cc', 714 '../../src/x64/code-stubs-x64.h', 715 '../../src/x64/codegen-x64.cc', 716 '../../src/x64/codegen-x64.h', 717 '../../src/x64/cpu-x64.cc', 718 '../../src/x64/debug-x64.cc', 719 '../../src/x64/deoptimizer-x64.cc', 720 '../../src/x64/disasm-x64.cc', 721 '../../src/x64/frames-x64.cc', 722 '../../src/x64/frames-x64.h', 723 '../../src/x64/full-codegen-x64.cc', 724 '../../src/x64/ic-x64.cc', 725 '../../src/x64/lithium-codegen-x64.cc', 726 '../../src/x64/lithium-codegen-x64.h', 727 '../../src/x64/lithium-gap-resolver-x64.cc', 728 '../../src/x64/lithium-gap-resolver-x64.h', 729 '../../src/x64/lithium-x64.cc', 730 '../../src/x64/lithium-x64.h', 731 '../../src/x64/macro-assembler-x64.cc', 732 '../../src/x64/macro-assembler-x64.h', 733 '../../src/x64/regexp-macro-assembler-x64.cc', 734 '../../src/x64/regexp-macro-assembler-x64.h', 735 '../../src/x64/stub-cache-x64.cc', 736 ], 737 }], 738 ['OS=="linux"', { 739 'link_settings': { 740 'conditions': [ 741 ['v8_compress_startup_data=="bz2"', { 742 'libraries': [ 743 '-lbz2', 744 ] 745 }], 746 ], 747 'libraries': [ 748 '-lrt' 749 ] 750 }, 751 'sources': [ ### gcmole(os:linux) ### 752 '../../src/platform-linux.cc', 753 '../../src/platform-posix.cc' 754 ], 755 } 756 ], 757 ['OS=="android"', { 758 'defines': [ 759 'CAN_USE_VFP_INSTRUCTIONS', 760 ], 761 'sources': [ 762 '../../src/platform-posix.cc' 763 ], 764 'conditions': [ 765 ['host_os=="mac"', { 766 'target_conditions': [ 767 ['_toolset=="host"', { 768 'sources': [ 769 '../../src/platform-macos.cc' 770 ] 771 }, { 772 'sources': [ 773 '../../src/platform-linux.cc' 774 ] 775 }], 776 ], 777 }, { 778 # TODO(bmeurer): What we really want here, is this: 779 # 780 # 'link_settings': { 781 # 'target_conditions': [ 782 # ['_toolset=="host"', { 783 # 'libraries': [ 784 # '-lrt' 785 # ] 786 # }] 787 # ] 788 # }, 789 # 790 # but we can't do this right now, as the AOSP does not support 791 # linking against the host librt, so we need to work around this 792 # for now, using the following hack (see platform/time.cc): 793 'target_conditions': [ 794 ['_toolset=="host"', { 795 'defines': [ 796 'V8_LIBRT_NOT_AVAILABLE=1', 797 ], 798 }], 799 ], 800 'sources': [ 801 '../../src/platform-linux.cc' 802 ] 803 }], 804 ], 805 }, 806 ], 807 ['OS=="freebsd"', { 808 'link_settings': { 809 'libraries': [ 810 '-L/usr/local/lib -lexecinfo', 811 ]}, 812 'sources': [ 813 '../../src/platform-freebsd.cc', 814 '../../src/platform-posix.cc' 815 ], 816 } 817 ], 818 ['OS=="openbsd"', { 819 'link_settings': { 820 'libraries': [ 821 '-L/usr/local/lib -lexecinfo', 822 ]}, 823 'sources': [ 824 '../../src/platform-openbsd.cc', 825 '../../src/platform-posix.cc' 826 ], 827 } 828 ], 829 ['OS=="netbsd"', { 830 'link_settings': { 831 'libraries': [ 832 '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo', 833 ]}, 834 'sources': [ 835 '../../src/platform-openbsd.cc', 836 '../../src/platform-posix.cc' 837 ], 838 } 839 ], 840 ['OS=="solaris"', { 841 'link_settings': { 842 'libraries': [ 843 '-lsocket -lnsl', 844 ]}, 845 'sources': [ 846 '../../src/platform-solaris.cc', 847 '../../src/platform-posix.cc' 848 ], 849 } 850 ], 851 ['OS=="mac"', { 852 'sources': [ 853 '../../src/platform-macos.cc', 854 '../../src/platform-posix.cc' 855 ]}, 856 ], 857 ['OS=="win"', { 858 'defines': [ 859 '_CRT_RAND_S' # for rand_s() 860 ], 861 'variables': { 862 'gyp_generators': '<!(echo $GYP_GENERATORS)', 863 }, 864 'conditions': [ 865 ['gyp_generators=="make"', { 866 'variables': { 867 'build_env': '<!(uname -o)', 868 }, 869 'conditions': [ 870 ['build_env=="Cygwin"', { 871 'sources': [ 872 '../../src/platform-cygwin.cc', 873 '../../src/platform-posix.cc' 874 ], 875 }, { 876 'sources': [ 877 '../../src/platform-win32.cc', 878 '../../src/win32-math.cc', 879 '../../src/win32-math.h' 880 ], 881 }], 882 ], 883 'link_settings': { 884 'libraries': [ '-lwinmm', '-lws2_32' ], 885 }, 886 }, { 887 'sources': [ 888 '../../src/platform-win32.cc', 889 '../../src/win32-math.cc', 890 '../../src/win32-math.h' 891 ], 892 'msvs_disabled_warnings': [4351, 4355, 4800], 893 'link_settings': { 894 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ], 895 }, 896 }], 897 ], 898 }], 899 ['component=="shared_library"', { 900 'defines': [ 901 'BUILDING_V8_SHARED', 902 'V8_SHARED', 903 ], 904 }], 905 ['v8_postmortem_support=="true"', { 906 'sources': [ 907 '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', 908 ] 909 }], 910 ['v8_enable_i18n_support==1', { 911 'dependencies': [ 912 '<(icu_gyp_path):icui18n', 913 '<(icu_gyp_path):icuuc', 914 ] 915 }, { # v8_enable_i18n_support==0 916 'sources!': [ 917 '../../src/i18n.cc', 918 '../../src/i18n.h', 919 ], 920 }], 921 ['OS=="win" and v8_enable_i18n_support==1', { 922 'dependencies': [ 923 '<(icu_gyp_path):icudata', 924 ], 925 }], 926 ['v8_use_default_platform==0', { 927 'sources!': [ 928 '../../src/default-platform.cc', 929 '../../src/default-platform.h', 930 ], 931 }], 932 ], 933 }, 934 { 935 'target_name': 'js2c', 936 'type': 'none', 937 'conditions': [ 938 ['want_separate_host_toolset==1', { 939 'toolsets': ['host'], 940 }, { 941 'toolsets': ['target'], 942 }], 943 ['v8_enable_i18n_support==1', { 944 'variables': { 945 'i18n_library_files': [ 946 '../../src/i18n.js', 947 ], 948 }, 949 }, { 950 'variables': { 951 'i18n_library_files': [], 952 }, 953 }], 954 ], 955 'variables': { 956 'library_files': [ 957 '../../src/runtime.js', 958 '../../src/v8natives.js', 959 '../../src/array.js', 960 '../../src/string.js', 961 '../../src/uri.js', 962 '../../src/math.js', 963 '../../src/messages.js', 964 '../../src/apinatives.js', 965 '../../src/debug-debugger.js', 966 '../../src/mirror-debugger.js', 967 '../../src/liveedit-debugger.js', 968 '../../src/date.js', 969 '../../src/json.js', 970 '../../src/regexp.js', 971 '../../src/arraybuffer.js', 972 '../../src/typedarray.js', 973 '../../src/macros.py', 974 ], 975 'experimental_library_files': [ 976 '../../src/macros.py', 977 '../../src/symbol.js', 978 '../../src/proxy.js', 979 '../../src/collection.js', 980 '../../src/object-observe.js', 981 '../../src/promise.js', 982 '../../src/generator.js', 983 '../../src/array-iterator.js', 984 '../../src/harmony-string.js', 985 '../../src/harmony-array.js', 986 '../../src/harmony-math.js' 987 ], 988 }, 989 'actions': [ 990 { 991 'action_name': 'js2c', 992 'inputs': [ 993 '../../tools/js2c.py', 994 '<@(library_files)', 995 '<@(i18n_library_files)', 996 ], 997 'outputs': [ 998 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 999 ], 1000 'action': [ 1001 'python', 1002 '../../tools/js2c.py', 1003 '<@(_outputs)', 1004 'CORE', 1005 '<(v8_compress_startup_data)', 1006 '<@(library_files)', 1007 '<@(i18n_library_files)', 1008 ], 1009 }, 1010 { 1011 'action_name': 'js2c_experimental', 1012 'inputs': [ 1013 '../../tools/js2c.py', 1014 '<@(experimental_library_files)', 1015 ], 1016 'outputs': [ 1017 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 1018 ], 1019 'action': [ 1020 'python', 1021 '../../tools/js2c.py', 1022 '<@(_outputs)', 1023 'EXPERIMENTAL', 1024 '<(v8_compress_startup_data)', 1025 '<@(experimental_library_files)' 1026 ], 1027 }, 1028 ], 1029 }, 1030 { 1031 'target_name': 'postmortem-metadata', 1032 'type': 'none', 1033 'variables': { 1034 'heapobject_files': [ 1035 '../../src/objects.h', 1036 '../../src/objects-inl.h', 1037 ], 1038 }, 1039 'actions': [ 1040 { 1041 'action_name': 'gen-postmortem-metadata', 1042 'inputs': [ 1043 '../../tools/gen-postmortem-metadata.py', 1044 '<@(heapobject_files)', 1045 ], 1046 'outputs': [ 1047 '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', 1048 ], 1049 'action': [ 1050 'python', 1051 '../../tools/gen-postmortem-metadata.py', 1052 '<@(_outputs)', 1053 '<@(heapobject_files)' 1054 ] 1055 } 1056 ] 1057 }, 1058 { 1059 'target_name': 'mksnapshot.<(v8_target_arch)', 1060 'type': 'executable', 1061 'dependencies': [ 1062 'v8_base.<(v8_target_arch)', 1063 'v8_nosnapshot.<(v8_target_arch)', 1064 ], 1065 'include_dirs+': [ 1066 '../../src', 1067 ], 1068 'sources': [ 1069 '../../src/mksnapshot.cc', 1070 ], 1071 'conditions': [ 1072 ['want_separate_host_toolset==1', { 1073 'toolsets': ['host'], 1074 }, { 1075 'toolsets': ['target'], 1076 }], 1077 ['v8_compress_startup_data=="bz2"', { 1078 'libraries': [ 1079 '-lbz2', 1080 ] 1081 }], 1082 ], 1083 }, 1084 { 1085 'target_name': 'v8_shell', 1086 'type': 'executable', 1087 'dependencies': [ 1088 'v8' 1089 ], 1090 'sources': [ 1091 '../../samples/shell.cc', 1092 ], 1093 'conditions': [ 1094 ['want_separate_host_toolset==1', { 1095 'toolsets': ['host'], 1096 }, { 1097 'toolsets': ['target'], 1098 }], 1099 ['OS=="win"', { 1100 # This could be gotten by not setting chromium_code, if that's OK. 1101 'defines': ['_CRT_SECURE_NO_WARNINGS'], 1102 }], 1103 ['v8_compress_startup_data=="bz2"', { 1104 'libraries': [ 1105 '-lbz2', 1106 ] 1107 }], 1108 ], 1109 }, 1110 ], 1111 } 1112