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   '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