utils.py revision 3ef787dbeca8a5fb1086949cda830dccee07bfbd
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 'includes': ['../../build/common.gypi'], 30 'conditions': [ 31 ['use_system_v8==0', { 32 'targets': [ 33 { 34 'target_name': 'v8', 35 'dependencies_traverse': 1, 36 'conditions': [ 37 ['want_separate_host_toolset==1', { 38 'toolsets': ['host', 'target'], 39 }, { 40 'toolsets': ['target'], 41 }], 42 ['v8_use_snapshot=="true"', { 43 # The dependency on v8_base should come from a transitive 44 # dependency however the Android toolchain requires libv8_base.a 45 # to appear before libv8_snapshot.a so it's listed explicitly. 46 'dependencies': ['v8_base', 'v8_snapshot'], 47 }, 48 { 49 # The dependency on v8_base should come from a transitive 50 # dependency however the Android toolchain requires libv8_base.a 51 # to appear before libv8_snapshot.a so it's listed explicitly. 52 'dependencies': ['v8_base', 'v8_nosnapshot'], 53 }], 54 ['component=="shared_library"', { 55 'type': '<(component)', 56 'sources': [ 57 # Note: on non-Windows we still build this file so that gyp 58 # has some sources to link into the component. 59 '../../src/v8dll-main.cc', 60 ], 61 'conditions': [ 62 ['OS=="win"', { 63 'defines': [ 64 'BUILDING_V8_SHARED', 65 ], 66 'direct_dependent_settings': { 67 'defines': [ 68 'USING_V8_SHARED', 69 ], 70 }, 71 }, { 72 'defines': [ 73 'V8_SHARED', 74 ], 75 'direct_dependent_settings': { 76 'defines': [ 77 'V8_SHARED', 78 ], 79 }, 80 }], 81 ['soname_version!=""', { 82 'product_extension': 'so.<(soname_version)', 83 }], 84 ], 85 }, 86 { 87 'type': 'none', 88 }], 89 ], 90 'direct_dependent_settings': { 91 'include_dirs': [ 92 '../../include', 93 ], 94 }, 95 }, 96 { 97 'target_name': 'v8_snapshot', 98 'type': '<(library)', 99 'conditions': [ 100 ['want_separate_host_toolset==1', { 101 'toolsets': ['host', 'target'], 102 'dependencies': ['mksnapshot#host', 'js2c#host'], 103 }, { 104 'toolsets': ['target'], 105 'dependencies': ['mksnapshot', 'js2c'], 106 }], 107 ['component=="shared_library"', { 108 'conditions': [ 109 ['OS=="win"', { 110 'defines': [ 111 'BUILDING_V8_SHARED', 112 ], 113 'direct_dependent_settings': { 114 'defines': [ 115 'USING_V8_SHARED', 116 ], 117 }, 118 }, { 119 'defines': [ 120 'V8_SHARED', 121 ], 122 'direct_dependent_settings': { 123 'defines': [ 124 'V8_SHARED', 125 ], 126 }, 127 }], 128 ], 129 }], 130 ], 131 'dependencies': [ 132 'v8_base', 133 ], 134 'include_dirs+': [ 135 '../../src', 136 ], 137 'sources': [ 138 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 139 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 140 '<(INTERMEDIATE_DIR)/snapshot.cc', 141 ], 142 'actions': [ 143 { 144 'action_name': 'run_mksnapshot', 145 'inputs': [ 146 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', 147 ], 148 'outputs': [ 149 '<(INTERMEDIATE_DIR)/snapshot.cc', 150 ], 151 'variables': { 152 'mksnapshot_flags': [ 153 '--log-snapshot-positions', 154 '--logfile', '<(INTERMEDIATE_DIR)/snapshot.log', 155 ], 156 }, 157 'conditions': [ 158 ['v8_target_arch=="arm"', { 159 # The following rules should be consistent with chromium's 160 # common.gypi and V8's runtime rule to ensure they all generate 161 # the same correct machine code. The following issue is about 162 # V8's runtime rule about vfpv3 and neon: 163 # http://code.google.com/p/v8/issues/detail?id=914 164 'conditions': [ 165 ['armv7==1', { 166 # The ARM Architecture Manual mandates VFPv3 if NEON is 167 # available. 168 # The current V8 doesn't use d16-d31, so for vfpv3-d16, we can 169 # also enable vfp3 for the better performance. 170 'conditions': [ 171 ['arm_neon!=1 and arm_fpu!="vfpv3" and arm_fpu!="vfpv3-d16"', { 172 'variables': { 173 'mksnapshot_flags': [ 174 '--noenable_vfp3', 175 ], 176 }, 177 }], 178 ], 179 },{ # else: armv7!=1 180 'variables': { 181 'mksnapshot_flags': [ 182 '--noenable_armv7', 183 '--noenable_vfp3', 184 ], 185 }, 186 }], 187 ], 188 }], 189 ], 190 'action': [ 191 '<@(_inputs)', 192 '<@(mksnapshot_flags)', 193 '<@(_outputs)' 194 ], 195 }, 196 ], 197 }, 198 { 199 'target_name': 'v8_nosnapshot', 200 'type': '<(library)', 201 'dependencies': [ 202 'v8_base', 203 ], 204 'include_dirs+': [ 205 '../../src', 206 ], 207 'sources': [ 208 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 209 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 210 '../../src/snapshot-empty.cc', 211 ], 212 'conditions': [ 213 ['want_separate_host_toolset==1', { 214 'toolsets': ['host', 'target'], 215 'dependencies': ['js2c#host'], 216 }, { 217 'toolsets': ['target'], 218 'dependencies': ['js2c'], 219 }], 220 ['component=="shared_library"', { 221 'defines': [ 222 'BUILDING_V8_SHARED', 223 'V8_SHARED', 224 ], 225 }], 226 ] 227 }, 228 { 229 'target_name': 'v8_base', 230 'type': '<(library)', 231 'variables': { 232 'optimize': 'max', 233 }, 234 'include_dirs+': [ 235 '../../src', 236 ], 237 'sources': [ 238 '../../src/accessors.cc', 239 '../../src/accessors.h', 240 '../../src/allocation.cc', 241 '../../src/allocation.h', 242 '../../src/api.cc', 243 '../../src/api.h', 244 '../../src/apiutils.h', 245 '../../src/arguments.h', 246 '../../src/assembler.cc', 247 '../../src/assembler.h', 248 '../../src/ast.cc', 249 '../../src/ast.h', 250 '../../src/atomicops.h', 251 '../../src/atomicops_internals_x86_gcc.cc', 252 '../../src/bignum.cc', 253 '../../src/bignum.h', 254 '../../src/bignum-dtoa.cc', 255 '../../src/bignum-dtoa.h', 256 '../../src/bootstrapper.cc', 257 '../../src/bootstrapper.h', 258 '../../src/builtins.cc', 259 '../../src/builtins.h', 260 '../../src/bytecodes-irregexp.h', 261 '../../src/cached-powers.cc', 262 '../../src/cached-powers.h', 263 '../../src/char-predicates-inl.h', 264 '../../src/char-predicates.h', 265 '../../src/checks.cc', 266 '../../src/checks.h', 267 '../../src/circular-queue-inl.h', 268 '../../src/circular-queue.cc', 269 '../../src/circular-queue.h', 270 '../../src/code-stubs.cc', 271 '../../src/code-stubs.h', 272 '../../src/code.h', 273 '../../src/codegen.cc', 274 '../../src/codegen.h', 275 '../../src/compilation-cache.cc', 276 '../../src/compilation-cache.h', 277 '../../src/compiler.cc', 278 '../../src/compiler.h', 279 '../../src/contexts.cc', 280 '../../src/contexts.h', 281 '../../src/conversions-inl.h', 282 '../../src/conversions.cc', 283 '../../src/conversions.h', 284 '../../src/counters.cc', 285 '../../src/counters.h', 286 '../../src/cpu.h', 287 '../../src/cpu-profiler-inl.h', 288 '../../src/cpu-profiler.cc', 289 '../../src/cpu-profiler.h', 290 '../../src/data-flow.cc', 291 '../../src/data-flow.h', 292 '../../src/date.cc', 293 '../../src/date.h', 294 '../../src/dateparser.cc', 295 '../../src/dateparser.h', 296 '../../src/dateparser-inl.h', 297 '../../src/debug.cc', 298 '../../src/debug.h', 299 '../../src/debug-agent.cc', 300 '../../src/debug-agent.h', 301 '../../src/deoptimizer.cc', 302 '../../src/deoptimizer.h', 303 '../../src/disasm.h', 304 '../../src/disassembler.cc', 305 '../../src/disassembler.h', 306 '../../src/diy-fp.cc', 307 '../../src/diy-fp.h', 308 '../../src/double.h', 309 '../../src/dtoa.cc', 310 '../../src/dtoa.h', 311 '../../src/elements.cc', 312 '../../src/elements.h', 313 '../../src/execution.cc', 314 '../../src/execution.h', 315 '../../src/factory.cc', 316 '../../src/factory.h', 317 '../../src/fast-dtoa.cc', 318 '../../src/fast-dtoa.h', 319 '../../src/flag-definitions.h', 320 '../../src/fixed-dtoa.cc', 321 '../../src/fixed-dtoa.h', 322 '../../src/flags.cc', 323 '../../src/flags.h', 324 '../../src/frames-inl.h', 325 '../../src/frames.cc', 326 '../../src/frames.h', 327 '../../src/full-codegen.cc', 328 '../../src/full-codegen.h', 329 '../../src/func-name-inferrer.cc', 330 '../../src/func-name-inferrer.h', 331 '../../src/global-handles.cc', 332 '../../src/global-handles.h', 333 '../../src/globals.h', 334 '../../src/handles-inl.h', 335 '../../src/handles.cc', 336 '../../src/handles.h', 337 '../../src/hashmap.h', 338 '../../src/heap-inl.h', 339 '../../src/heap.cc', 340 '../../src/heap.h', 341 '../../src/heap-profiler.cc', 342 '../../src/heap-profiler.h', 343 '../../src/hydrogen.cc', 344 '../../src/hydrogen.h', 345 '../../src/hydrogen-instructions.cc', 346 '../../src/hydrogen-instructions.h', 347 '../../src/ic-inl.h', 348 '../../src/ic.cc', 349 '../../src/ic.h', 350 '../../src/incremental-marking.cc', 351 '../../src/incremental-marking.h', 352 '../../src/inspector.cc', 353 '../../src/inspector.h', 354 '../../src/interface.cc', 355 '../../src/interface.h', 356 '../../src/interpreter-irregexp.cc', 357 '../../src/interpreter-irregexp.h', 358 '../../src/json-parser.h', 359 '../../src/jsregexp.cc', 360 '../../src/jsregexp.h', 361 '../../src/isolate.cc', 362 '../../src/isolate.h', 363 '../../src/lazy-instance.h' 364 '../../src/list-inl.h', 365 '../../src/list.h', 366 '../../src/lithium.cc', 367 '../../src/lithium.h', 368 '../../src/lithium-allocator.cc', 369 '../../src/lithium-allocator.h', 370 '../../src/lithium-allocator-inl.h', 371 '../../src/liveedit.cc', 372 '../../src/liveedit.h', 373 '../../src/liveobjectlist-inl.h', 374 '../../src/liveobjectlist.cc', 375 '../../src/liveobjectlist.h', 376 '../../src/log-inl.h', 377 '../../src/log-utils.cc', 378 '../../src/log-utils.h', 379 '../../src/log.cc', 380 '../../src/log.h', 381 '../../src/macro-assembler.h', 382 '../../src/mark-compact.cc', 383 '../../src/mark-compact.h', 384 '../../src/messages.cc', 385 '../../src/messages.h', 386 '../../src/natives.h', 387 '../../src/objects-debug.cc', 388 '../../src/objects-printer.cc', 389 '../../src/objects-inl.h', 390 '../../src/objects-visiting.cc', 391 '../../src/objects-visiting.h', 392 '../../src/objects.cc', 393 '../../src/objects.h', 394 '../../src/once.cc', 395 '../../src/once.h', 396 '../../src/parser.cc', 397 '../../src/parser.h', 398 '../../src/platform-posix.h', 399 '../../src/platform-tls-mac.h', 400 '../../src/platform-tls-win32.h', 401 '../../src/platform-tls.h', 402 '../../src/platform.h', 403 '../../src/preparse-data-format.h', 404 '../../src/preparse-data.cc', 405 '../../src/preparse-data.h', 406 '../../src/preparser.cc', 407 '../../src/preparser.h', 408 '../../src/prettyprinter.cc', 409 '../../src/prettyprinter.h', 410 '../../src/property.cc', 411 '../../src/property.h', 412 '../../src/property-details.h', 413 '../../src/profile-generator-inl.h', 414 '../../src/profile-generator.cc', 415 '../../src/profile-generator.h', 416 '../../src/regexp-macro-assembler-irregexp-inl.h', 417 '../../src/regexp-macro-assembler-irregexp.cc', 418 '../../src/regexp-macro-assembler-irregexp.h', 419 '../../src/regexp-macro-assembler-tracer.cc', 420 '../../src/regexp-macro-assembler-tracer.h', 421 '../../src/regexp-macro-assembler.cc', 422 '../../src/regexp-macro-assembler.h', 423 '../../src/regexp-stack.cc', 424 '../../src/regexp-stack.h', 425 '../../src/rewriter.cc', 426 '../../src/rewriter.h', 427 '../../src/runtime.cc', 428 '../../src/runtime.h', 429 '../../src/runtime-profiler.cc', 430 '../../src/runtime-profiler.h', 431 '../../src/safepoint-table.cc', 432 '../../src/safepoint-table.h', 433 '../../src/scanner.cc', 434 '../../src/scanner.h', 435 '../../src/scanner-character-streams.cc', 436 '../../src/scanner-character-streams.h', 437 '../../src/scopeinfo.cc', 438 '../../src/scopeinfo.h', 439 '../../src/scopes.cc', 440 '../../src/scopes.h', 441 '../../src/serialize.cc', 442 '../../src/serialize.h', 443 '../../src/small-pointer-list.h', 444 '../../src/smart-array-pointer.h', 445 '../../src/snapshot-common.cc', 446 '../../src/snapshot.h', 447 '../../src/spaces-inl.h', 448 '../../src/spaces.cc', 449 '../../src/spaces.h', 450 '../../src/store-buffer-inl.h', 451 '../../src/store-buffer.cc', 452 '../../src/store-buffer.h', 453 '../../src/string-search.cc', 454 '../../src/string-search.h', 455 '../../src/string-stream.cc', 456 '../../src/string-stream.h', 457 '../../src/strtod.cc', 458 '../../src/strtod.h', 459 '../../src/stub-cache.cc', 460 '../../src/stub-cache.h', 461 '../../src/token.cc', 462 '../../src/token.h', 463 '../../src/type-info.cc', 464 '../../src/type-info.h', 465 '../../src/unbound-queue-inl.h', 466 '../../src/unbound-queue.h', 467 '../../src/unicode-inl.h', 468 '../../src/unicode.cc', 469 '../../src/unicode.h', 470 '../../src/utils-inl.h', 471 '../../src/utils.cc', 472 '../../src/utils.h', 473 '../../src/v8-counters.cc', 474 '../../src/v8-counters.h', 475 '../../src/v8.cc', 476 '../../src/v8.h', 477 '../../src/v8checks.h', 478 '../../src/v8conversions.cc', 479 '../../src/v8conversions.h', 480 '../../src/v8globals.h', 481 '../../src/v8memory.h', 482 '../../src/v8threads.cc', 483 '../../src/v8threads.h', 484 '../../src/v8utils.cc', 485 '../../src/v8utils.h', 486 '../../src/variables.cc', 487 '../../src/variables.h', 488 '../../src/version.cc', 489 '../../src/version.h', 490 '../../src/vm-state-inl.h', 491 '../../src/vm-state.h', 492 '../../src/zone-inl.h', 493 '../../src/zone.cc', 494 '../../src/zone.h', 495 '../../src/extensions/externalize-string-extension.cc', 496 '../../src/extensions/externalize-string-extension.h', 497 '../../src/extensions/gc-extension.cc', 498 '../../src/extensions/gc-extension.h', 499 ], 500 'conditions': [ 501 ['want_separate_host_toolset==1', { 502 'toolsets': ['host', 'target'], 503 }, { 504 'toolsets': ['target'], 505 }], 506 ['v8_target_arch=="arm"', { 507 'sources': [ 508 '../../src/arm/assembler-arm-inl.h', 509 '../../src/arm/assembler-arm.cc', 510 '../../src/arm/assembler-arm.h', 511 '../../src/arm/builtins-arm.cc', 512 '../../src/arm/code-stubs-arm.cc', 513 '../../src/arm/code-stubs-arm.h', 514 '../../src/arm/codegen-arm.cc', 515 '../../src/arm/codegen-arm.h', 516 '../../src/arm/constants-arm.h', 517 '../../src/arm/constants-arm.cc', 518 '../../src/arm/cpu-arm.cc', 519 '../../src/arm/debug-arm.cc', 520 '../../src/arm/deoptimizer-arm.cc', 521 '../../src/arm/disasm-arm.cc', 522 '../../src/arm/frames-arm.cc', 523 '../../src/arm/frames-arm.h', 524 '../../src/arm/full-codegen-arm.cc', 525 '../../src/arm/ic-arm.cc', 526 '../../src/arm/lithium-arm.cc', 527 '../../src/arm/lithium-arm.h', 528 '../../src/arm/lithium-codegen-arm.cc', 529 '../../src/arm/lithium-codegen-arm.h', 530 '../../src/arm/lithium-gap-resolver-arm.cc', 531 '../../src/arm/lithium-gap-resolver-arm.h', 532 '../../src/arm/macro-assembler-arm.cc', 533 '../../src/arm/macro-assembler-arm.h', 534 '../../src/arm/regexp-macro-assembler-arm.cc', 535 '../../src/arm/regexp-macro-assembler-arm.h', 536 '../../src/arm/simulator-arm.cc', 537 '../../src/arm/stub-cache-arm.cc', 538 ], 539 }], 540 ['v8_target_arch=="ia32" or v8_target_arch=="mac" or OS=="mac"', { 541 'sources': [ 542 '../../src/ia32/assembler-ia32-inl.h', 543 '../../src/ia32/assembler-ia32.cc', 544 '../../src/ia32/assembler-ia32.h', 545 '../../src/ia32/builtins-ia32.cc', 546 '../../src/ia32/code-stubs-ia32.cc', 547 '../../src/ia32/code-stubs-ia32.h', 548 '../../src/ia32/codegen-ia32.cc', 549 '../../src/ia32/codegen-ia32.h', 550 '../../src/ia32/cpu-ia32.cc', 551 '../../src/ia32/debug-ia32.cc', 552 '../../src/ia32/deoptimizer-ia32.cc', 553 '../../src/ia32/disasm-ia32.cc', 554 '../../src/ia32/frames-ia32.cc', 555 '../../src/ia32/frames-ia32.h', 556 '../../src/ia32/full-codegen-ia32.cc', 557 '../../src/ia32/ic-ia32.cc', 558 '../../src/ia32/lithium-codegen-ia32.cc', 559 '../../src/ia32/lithium-codegen-ia32.h', 560 '../../src/ia32/lithium-gap-resolver-ia32.cc', 561 '../../src/ia32/lithium-gap-resolver-ia32.h', 562 '../../src/ia32/lithium-ia32.cc', 563 '../../src/ia32/lithium-ia32.h', 564 '../../src/ia32/macro-assembler-ia32.cc', 565 '../../src/ia32/macro-assembler-ia32.h', 566 '../../src/ia32/regexp-macro-assembler-ia32.cc', 567 '../../src/ia32/regexp-macro-assembler-ia32.h', 568 '../../src/ia32/stub-cache-ia32.cc', 569 ], 570 }], 571 ['v8_target_arch=="mips"', { 572 'sources': [ 573 '../../src/mips/assembler-mips.cc', 574 '../../src/mips/assembler-mips.h', 575 '../../src/mips/assembler-mips-inl.h', 576 '../../src/mips/builtins-mips.cc', 577 '../../src/mips/codegen-mips.cc', 578 '../../src/mips/codegen-mips.h', 579 '../../src/mips/code-stubs-mips.cc', 580 '../../src/mips/code-stubs-mips.h', 581 '../../src/mips/constants-mips.cc', 582 '../../src/mips/constants-mips.h', 583 '../../src/mips/cpu-mips.cc', 584 '../../src/mips/debug-mips.cc', 585 '../../src/mips/deoptimizer-mips.cc', 586 '../../src/mips/disasm-mips.cc', 587 '../../src/mips/frames-mips.cc', 588 '../../src/mips/frames-mips.h', 589 '../../src/mips/full-codegen-mips.cc', 590 '../../src/mips/ic-mips.cc', 591 '../../src/mips/lithium-codegen-mips.cc', 592 '../../src/mips/lithium-codegen-mips.h', 593 '../../src/mips/lithium-gap-resolver-mips.cc', 594 '../../src/mips/lithium-gap-resolver-mips.h', 595 '../../src/mips/lithium-mips.cc', 596 '../../src/mips/lithium-mips.h', 597 '../../src/mips/macro-assembler-mips.cc', 598 '../../src/mips/macro-assembler-mips.h', 599 '../../src/mips/regexp-macro-assembler-mips.cc', 600 '../../src/mips/regexp-macro-assembler-mips.h', 601 '../../src/mips/simulator-mips.cc', 602 '../../src/mips/stub-cache-mips.cc', 603 ], 604 }], 605 ['v8_target_arch=="x64" or v8_target_arch=="mac" or OS=="mac"', { 606 'sources': [ 607 '../../src/x64/assembler-x64-inl.h', 608 '../../src/x64/assembler-x64.cc', 609 '../../src/x64/assembler-x64.h', 610 '../../src/x64/builtins-x64.cc', 611 '../../src/x64/code-stubs-x64.cc', 612 '../../src/x64/code-stubs-x64.h', 613 '../../src/x64/codegen-x64.cc', 614 '../../src/x64/codegen-x64.h', 615 '../../src/x64/cpu-x64.cc', 616 '../../src/x64/debug-x64.cc', 617 '../../src/x64/deoptimizer-x64.cc', 618 '../../src/x64/disasm-x64.cc', 619 '../../src/x64/frames-x64.cc', 620 '../../src/x64/frames-x64.h', 621 '../../src/x64/full-codegen-x64.cc', 622 '../../src/x64/ic-x64.cc', 623 '../../src/x64/lithium-codegen-x64.cc', 624 '../../src/x64/lithium-codegen-x64.h', 625 '../../src/x64/lithium-gap-resolver-x64.cc', 626 '../../src/x64/lithium-gap-resolver-x64.h', 627 '../../src/x64/lithium-x64.cc', 628 '../../src/x64/lithium-x64.h', 629 '../../src/x64/macro-assembler-x64.cc', 630 '../../src/x64/macro-assembler-x64.h', 631 '../../src/x64/regexp-macro-assembler-x64.cc', 632 '../../src/x64/regexp-macro-assembler-x64.h', 633 '../../src/x64/stub-cache-x64.cc', 634 ], 635 }], 636 ['OS=="linux"', { 637 'link_settings': { 638 'conditions': [ 639 ['v8_compress_startup_data=="bz2"', { 640 'libraries': [ 641 '-lbz2', 642 ] 643 }], 644 ], 645 }, 646 'sources': [ 647 '../../src/platform-linux.cc', 648 '../../src/platform-posix.cc' 649 ], 650 } 651 ], 652 ['OS=="android"', { 653 'defines': [ 654 'CAN_USE_VFP_INSTRUCTIONS', 655 ], 656 'sources': [ 657 '../../src/platform-posix.cc', 658 ], 659 'conditions': [ 660 ['host_os=="mac"', { 661 'target_conditions': [ 662 ['_toolset=="host"', { 663 'sources': [ 664 '../../src/platform-macos.cc' 665 ] 666 }, { 667 'sources': [ 668 '../../src/platform-linux.cc' 669 ] 670 }], 671 ], 672 }, { 673 'sources': [ 674 '../../src/platform-linux.cc' 675 ] 676 }], 677 ], 678 }, 679 ], 680 ['OS=="freebsd"', { 681 'link_settings': { 682 'libraries': [ 683 '-L/usr/local/lib -lexecinfo', 684 ]}, 685 'sources': [ 686 '../../src/platform-freebsd.cc', 687 '../../src/platform-posix.cc' 688 ], 689 } 690 ], 691 ['OS=="openbsd"', { 692 'link_settings': { 693 'libraries': [ 694 '-L/usr/local/lib -lexecinfo', 695 ]}, 696 'sources': [ 697 '../../src/platform-openbsd.cc', 698 '../../src/platform-posix.cc' 699 ], 700 } 701 ], 702 ['OS=="netbsd"', { 703 'link_settings': { 704 'libraries': [ 705 '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo', 706 ]}, 707 'sources': [ 708 '../../src/platform-openbsd.cc', 709 '../../src/platform-posix.cc' 710 ], 711 } 712 ], 713 ['OS=="solaris"', { 714 'link_settings': { 715 'libraries': [ 716 '-lsocket -lnsl', 717 ]}, 718 'sources': [ 719 '../../src/platform-solaris.cc', 720 '../../src/platform-posix.cc', 721 ], 722 } 723 ], 724 ['OS=="mac"', { 725 'sources': [ 726 '../../src/platform-macos.cc', 727 '../../src/platform-posix.cc' 728 ]}, 729 ], 730 ['OS=="win"', { 731 'sources': [ 732 '../../src/platform-win32.cc', 733 '../../src/win32-math.cc', 734 '../../src/win32-math.h', 735 ], 736 'msvs_disabled_warnings': [4351, 4355, 4800], 737 'link_settings': { 738 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ], 739 }, 740 }], 741 ['component=="shared_library"', { 742 'defines': [ 743 'BUILDING_V8_SHARED', 744 'V8_SHARED', 745 ], 746 }], 747 ['v8_postmortem_support=="true"', { 748 'sources': [ 749 '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', 750 ] 751 }], 752 ], 753 }, 754 { 755 'target_name': 'js2c', 756 'type': 'none', 757 'conditions': [ 758 ['want_separate_host_toolset==1', { 759 'toolsets': ['host'], 760 }, { 761 'toolsets': ['target'], 762 }], 763 ], 764 'variables': { 765 'library_files': [ 766 '../../src/runtime.js', 767 '../../src/v8natives.js', 768 '../../src/array.js', 769 '../../src/string.js', 770 '../../src/uri.js', 771 '../../src/math.js', 772 '../../src/messages.js', 773 '../../src/apinatives.js', 774 '../../src/debug-debugger.js', 775 '../../src/mirror-debugger.js', 776 '../../src/liveedit-debugger.js', 777 '../../src/date.js', 778 '../../src/json.js', 779 '../../src/regexp.js', 780 '../../src/macros.py', 781 ], 782 'experimental_library_files': [ 783 '../../src/macros.py', 784 '../../src/proxy.js', 785 '../../src/collection.js', 786 ], 787 }, 788 'actions': [ 789 { 790 'action_name': 'js2c', 791 'inputs': [ 792 '../../tools/js2c.py', 793 '<@(library_files)', 794 ], 795 'outputs': [ 796 '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 797 ], 798 'action': [ 799 'python', 800 '../../tools/js2c.py', 801 '<@(_outputs)', 802 'CORE', 803 '<(v8_compress_startup_data)', 804 '<@(library_files)' 805 ], 806 }, 807 { 808 'action_name': 'js2c_experimental', 809 'inputs': [ 810 '../../tools/js2c.py', 811 '<@(experimental_library_files)', 812 ], 813 'outputs': [ 814 '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', 815 ], 816 'action': [ 817 'python', 818 '../../tools/js2c.py', 819 '<@(_outputs)', 820 'EXPERIMENTAL', 821 '<(v8_compress_startup_data)', 822 '<@(experimental_library_files)' 823 ], 824 }, 825 ], 826 }, 827 { 828 'target_name': 'postmortem-metadata', 829 'type': 'none', 830 'variables': { 831 'heapobject_files': [ 832 '../../src/objects.h', 833 '../../src/objects-inl.h', 834 ], 835 }, 836 'actions': [ 837 { 838 'action_name': 'gen-postmortem-metadata', 839 'inputs': [ 840 '../../tools/gen-postmortem-metadata.py', 841 '<@(heapobject_files)', 842 ], 843 'outputs': [ 844 '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', 845 ], 846 'action': [ 847 'python', 848 '../../tools/gen-postmortem-metadata.py', 849 '<@(_outputs)', 850 '<@(heapobject_files)' 851 ] 852 } 853 ] 854 }, 855 { 856 'target_name': 'mksnapshot', 857 'type': 'executable', 858 'dependencies': [ 859 'v8_base', 860 'v8_nosnapshot', 861 ], 862 'include_dirs+': [ 863 '../../src', 864 ], 865 'sources': [ 866 '../../src/mksnapshot.cc', 867 ], 868 'conditions': [ 869 ['want_separate_host_toolset==1', { 870 'toolsets': ['host'], 871 }, { 872 'toolsets': ['target'], 873 }], 874 ['v8_compress_startup_data=="bz2"', { 875 'libraries': [ 876 '-lbz2', 877 ] 878 }], 879 ], 880 }, 881 { 882 'target_name': 'v8_shell', 883 'type': 'executable', 884 'dependencies': [ 885 'v8' 886 ], 887 'sources': [ 888 '../../samples/shell.cc', 889 ], 890 'conditions': [ 891 ['want_separate_host_toolset==1', { 892 'toolsets': ['host'], 893 }, { 894 'toolsets': ['target'], 895 }], 896 ['OS=="win"', { 897 # This could be gotten by not setting chromium_code, if that's OK. 898 'defines': ['_CRT_SECURE_NO_WARNINGS'], 899 }], 900 ['v8_compress_startup_data=="bz2"', { 901 'libraries': [ 902 '-lbz2', 903 ] 904 }], 905 ], 906 }, 907 { 908 'target_name': 'preparser_lib', 909 'type': '<(library)', 910 'include_dirs+': [ 911 '../../src', 912 ], 913 'sources': [ 914 '../../include/v8-preparser.h', 915 '../../include/v8stdint.h', 916 '../../src/allocation.cc', 917 '../../src/allocation.h', 918 '../../src/atomicops.h', 919 '../../src/atomicops_internals_x86_gcc.cc', 920 '../../src/bignum.cc', 921 '../../src/bignum.h', 922 '../../src/bignum-dtoa.cc', 923 '../../src/bignum-dtoa.h', 924 '../../src/cached-powers.cc', 925 '../../src/cached-powers.h', 926 '../../src/char-predicates-inl.h', 927 '../../src/char-predicates.h', 928 '../../src/checks.h', 929 '../../src/conversions-inl.h', 930 '../../src/conversions.cc', 931 '../../src/conversions.h', 932 '../../src/diy-fp.cc', 933 '../../src/diy-fp.h', 934 '../../src/double.h', 935 '../../src/dtoa.cc', 936 '../../src/dtoa.h', 937 '../../src/fast-dtoa.cc', 938 '../../src/fast-dtoa.h', 939 '../../src/fixed-dtoa.cc', 940 '../../src/fixed-dtoa.h', 941 '../../src/globals.h', 942 '../../src/hashmap.h', 943 '../../src/list-inl.h', 944 '../../src/list.h', 945 '../../src/once.cc', 946 '../../src/once.h', 947 '../../src/preparse-data-format.h', 948 '../../src/preparse-data.cc', 949 '../../src/preparse-data.h', 950 '../../src/preparser.cc', 951 '../../src/preparser.h', 952 '../../src/preparser-api.cc', 953 '../../src/scanner.cc', 954 '../../src/scanner.h', 955 '../../src/strtod.cc', 956 '../../src/strtod.h', 957 '../../src/token.cc', 958 '../../src/token.h', 959 '../../src/unicode-inl.h', 960 '../../src/unicode.cc', 961 '../../src/unicode.h', 962 '../../src/utils-inl.h', 963 '../../src/utils.cc', 964 '../../src/utils.h', 965 ], 966 'conditions': [ 967 ['OS=="win"', { 968 'sources': [ 969 '../../src/win32-math.cc', 970 '../../src/win32-math.h', 971 ]}], 972 ], 973 }, 974 ], 975 }, { # use_system_v8 != 0 976 'targets': [ 977 { 978 'target_name': 'v8', 979 'type': 'none', 980 'conditions': [ 981 ['want_separate_host_toolset==1', { 982 'toolsets': ['host', 'target'], 983 }, { 984 'toolsets': ['target'], 985 }], 986 ], 987 'link_settings': { 988 'libraries': [ 989 '-lv8', 990 ], 991 }, 992 }, 993 { 994 'target_name': 'v8_shell', 995 'type': 'none', 996 'conditions': [ 997 ['want_separate_host_toolset==1', { 998 'toolsets': ['host'], 999 }, { 1000 'toolsets': ['target'], 1001 }], 1002 ], 1003 'dependencies': [ 1004 'v8' 1005 ], 1006 }, 1007 ], 1008 }], 1009 ], 1010} 1011