• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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