Home | History | Annotate | Download | only in gyp
      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