04855e5382f5a8aa152cb9b8dc88455ec0a964e0
[platform/upstream/v8.git] / tools / gyp / v8.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     'icu_use_data_file_flag%': 0,
31     'v8_code': 1,
32     'v8_random_seed%': 314159265,
33     'embed_script%': "",
34     'v8_extra_library_files%': [],
35     'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
36   },
37   'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
38   'targets': [
39     {
40       'target_name': 'v8',
41       'dependencies_traverse': 1,
42       'dependencies': ['v8_maybe_snapshot'],
43       'conditions': [
44         ['want_separate_host_toolset==1', {
45           'toolsets': ['host', 'target'],
46         }, {
47           'toolsets': ['target'],
48         }],
49         ['component=="shared_library"', {
50           'type': '<(component)',
51           'sources': [
52             # Note: on non-Windows we still build this file so that gyp
53             # has some sources to link into the component.
54             '../../src/v8dll-main.cc',
55           ],
56           'include_dirs': [
57             '../..',
58           ],
59           'defines': [
60             'V8_SHARED',
61             'BUILDING_V8_SHARED',
62           ],
63           'direct_dependent_settings': {
64             'defines': [
65               'V8_SHARED',
66               'USING_V8_SHARED',
67             ],
68           },
69           'target_conditions': [
70             ['OS=="android" and _toolset=="target"', {
71               'libraries': [
72                 '-llog',
73               ],
74               'include_dirs': [
75                 'src/common/android/include',
76               ],
77             }],
78           ],
79           'conditions': [
80             ['OS=="mac"', {
81               'xcode_settings': {
82                 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load']
83               },
84             }],
85             ['soname_version!=""', {
86               'product_extension': 'so.<(soname_version)',
87             }],
88           ],
89         },
90         {
91           'type': 'none',
92         }],
93       ],
94       'direct_dependent_settings': {
95         'include_dirs': [
96           '../../include',
97         ],
98       },
99     },
100     {
101       # This rule delegates to either v8_snapshot, v8_nosnapshot, or
102       # v8_external_snapshot, depending on the current variables.
103       # The intention is to make the 'calling' rules a bit simpler.
104       'target_name': 'v8_maybe_snapshot',
105       'type': 'none',
106       'conditions': [
107         ['v8_use_snapshot!="true"', {
108           # The dependency on v8_base should come from a transitive
109           # dependency however the Android toolchain requires libv8_base.a
110           # to appear before libv8_snapshot.a so it's listed explicitly.
111           'dependencies': ['v8_base', 'v8_nosnapshot'],
112         }],
113         ['v8_use_snapshot=="true" and v8_use_external_startup_data==0', {
114           # The dependency on v8_base should come from a transitive
115           # dependency however the Android toolchain requires libv8_base.a
116           # to appear before libv8_snapshot.a so it's listed explicitly.
117           'dependencies': ['v8_base', 'v8_snapshot'],
118         }],
119         ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==0', {
120           'dependencies': ['v8_base', 'v8_external_snapshot'],
121           'inputs': [ '<(PRODUCT_DIR)/snapshot_blob.bin', ],
122         }],
123         ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==1', {
124           'dependencies': ['v8_base', 'v8_external_snapshot'],
125           'target_conditions': [
126             ['_toolset=="host"', {
127               'inputs': [
128                 '<(PRODUCT_DIR)/snapshot_blob_host.bin',
129               ],
130             }, {
131               'inputs': [
132                 '<(PRODUCT_DIR)/snapshot_blob.bin',
133               ],
134             }],
135           ],
136         }],
137         ['want_separate_host_toolset==1', {
138           'toolsets': ['host', 'target'],
139         }, {
140           'toolsets': ['target'],
141         }],
142       ]
143     },
144     {
145       'target_name': 'v8_snapshot',
146       'type': 'static_library',
147       'conditions': [
148         ['want_separate_host_toolset==1', {
149           'toolsets': ['host', 'target'],
150           'dependencies': [
151             'mksnapshot#host',
152             'js2c#host',
153           ],
154         }, {
155           'toolsets': ['target'],
156           'dependencies': [
157             'mksnapshot',
158             'js2c',
159           ],
160         }],
161         ['component=="shared_library"', {
162           'defines': [
163             'V8_SHARED',
164             'BUILDING_V8_SHARED',
165           ],
166           'direct_dependent_settings': {
167             'defines': [
168               'V8_SHARED',
169               'USING_V8_SHARED',
170             ],
171           },
172         }],
173       ],
174       'dependencies': [
175         'v8_base',
176       ],
177       'include_dirs+': [
178         '../..',
179       ],
180       'sources': [
181         '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
182         '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc',
183         '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
184         '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
185         '<(INTERMEDIATE_DIR)/snapshot.cc',
186       ],
187       'actions': [
188         {
189           'action_name': 'run_mksnapshot',
190           'inputs': [
191             '<(mksnapshot_exec)',
192             '<(embed_script)',
193           ],
194           'outputs': [
195             '<(INTERMEDIATE_DIR)/snapshot.cc',
196           ],
197           'variables': {
198             'mksnapshot_flags': [
199               '--log-snapshot-positions',
200               '--logfile', '<(INTERMEDIATE_DIR)/snapshot.log',
201             ],
202             'conditions': [
203               ['v8_random_seed!=0', {
204                 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
205               }],
206             ],
207           },
208           'action': [
209             '<(mksnapshot_exec)',
210             '<@(mksnapshot_flags)',
211             '<@(INTERMEDIATE_DIR)/snapshot.cc',
212             '<(embed_script)',
213           ],
214         },
215       ],
216     },
217     {
218       'target_name': 'v8_nosnapshot',
219       'type': 'static_library',
220       'dependencies': [
221         'v8_base',
222       ],
223       'include_dirs+': [
224         '../..',
225       ],
226       'sources': [
227         '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
228         '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc',
229         '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
230         '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
231         '../../src/snapshot/snapshot-empty.cc',
232       ],
233       'conditions': [
234         ['want_separate_host_toolset==1', {
235           'toolsets': ['host', 'target'],
236           'dependencies': ['js2c#host'],
237         }, {
238           'toolsets': ['target'],
239           'dependencies': ['js2c'],
240         }],
241         ['component=="shared_library"', {
242           'defines': [
243             'BUILDING_V8_SHARED',
244             'V8_SHARED',
245           ],
246         }],
247       ]
248     },
249     {
250       'target_name': 'v8_external_snapshot',
251       'type': 'static_library',
252       'conditions': [
253         [ 'v8_use_external_startup_data==1', {
254           'conditions': [
255             ['want_separate_host_toolset==1', {
256               'toolsets': ['host', 'target'],
257               'dependencies': [
258                 'mksnapshot#host',
259                 'js2c#host',
260                 'natives_blob',
261             ]}, {
262               'toolsets': ['target'],
263               'dependencies': [
264                 'mksnapshot',
265                 'js2c',
266                 'natives_blob',
267               ],
268             }],
269             ['component=="shared_library"', {
270               'defines': [
271                 'V8_SHARED',
272                 'BUILDING_V8_SHARED',
273               ],
274               'direct_dependent_settings': {
275                 'defines': [
276                   'V8_SHARED',
277                   'USING_V8_SHARED',
278                 ],
279               },
280             }],
281           ],
282           'dependencies': [
283             'v8_base',
284           ],
285           'include_dirs+': [
286             '../..',
287           ],
288           'sources': [
289             '../../src/snapshot/natives-external.cc',
290             '../../src/snapshot/snapshot-external.cc',
291           ],
292           'actions': [
293             {
294               'action_name': 'run_mksnapshot (external)',
295               'inputs': [
296                 '<(mksnapshot_exec)',
297               ],
298               'variables': {
299                 'mksnapshot_flags': [
300                   '--log-snapshot-positions',
301                   '--logfile', '<(INTERMEDIATE_DIR)/snapshot.log',
302                 ],
303                 'conditions': [
304                   ['v8_random_seed!=0', {
305                     'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
306                   }],
307                 ],
308               },
309               'conditions': [
310                 ['want_separate_host_toolset==1', {
311                   'target_conditions': [
312                     ['_toolset=="host"', {
313                       'outputs': [
314                         '<(INTERMEDIATE_DIR)/snapshot.cc',
315                         '<(PRODUCT_DIR)/snapshot_blob_host.bin',
316                       ],
317                       'action': [
318                         '<(mksnapshot_exec)',
319                         '<@(mksnapshot_flags)',
320                         '<@(INTERMEDIATE_DIR)/snapshot.cc',
321                         '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin',
322                         '<(embed_script)',
323                       ],
324                     }, {
325                       'outputs': [
326                         '<(INTERMEDIATE_DIR)/snapshot.cc',
327                         '<(PRODUCT_DIR)/snapshot_blob.bin',
328                       ],
329                       'action': [
330                         '<(mksnapshot_exec)',
331                         '<@(mksnapshot_flags)',
332                         '<@(INTERMEDIATE_DIR)/snapshot.cc',
333                         '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
334                         '<(embed_script)',
335                       ],
336                     }],
337                   ],
338                 }, {
339                   'outputs': [
340                     '<(INTERMEDIATE_DIR)/snapshot.cc',
341                     '<(PRODUCT_DIR)/snapshot_blob.bin',
342                   ],
343                   'action': [
344                     '<(mksnapshot_exec)',
345                     '<@(mksnapshot_flags)',
346                     '<@(INTERMEDIATE_DIR)/snapshot.cc',
347                     '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
348                     '<(embed_script)',
349                   ],
350                 }],
351               ],
352             },
353           ],
354         }],
355       ],
356     },
357     {
358       'target_name': 'v8_base',
359       'type': 'static_library',
360       'dependencies': [
361         'v8_libbase',
362       ],
363       'variables': {
364         'optimize': 'max',
365       },
366       'include_dirs+': [
367         '../..',
368       ],
369       'defines': [
370         # TODO(jochen): Remove again after this is globally turned on.
371         'V8_IMMINENT_DEPRECATION_WARNINGS',
372       ],
373       'sources': [  ### gcmole(all) ###
374         '../../include/v8-debug.h',
375         '../../include/v8-platform.h',
376         '../../include/v8-profiler.h',
377         '../../include/v8-testing.h',
378         '../../include/v8-util.h',
379         '../../include/v8-version.h',
380         '../../include/v8.h',
381         '../../include/v8config.h',
382         '../../src/accessors.cc',
383         '../../src/accessors.h',
384         '../../src/allocation.cc',
385         '../../src/allocation.h',
386         '../../src/allocation-site-scopes.cc',
387         '../../src/allocation-site-scopes.h',
388         '../../src/allocation-tracker.cc',
389         '../../src/allocation-tracker.h',
390         '../../src/api.cc',
391         '../../src/api.h',
392         '../../src/api-natives.cc',
393         '../../src/api-natives.h',
394         '../../src/arguments.cc',
395         '../../src/arguments.h',
396         '../../src/assembler.cc',
397         '../../src/assembler.h',
398         '../../src/assert-scope.h',
399         '../../src/assert-scope.cc',
400         '../../src/ast-value-factory.cc',
401         '../../src/ast-value-factory.h',
402         '../../src/ast-literal-reindexer.cc',
403         '../../src/ast-literal-reindexer.h',
404         '../../src/ast-numbering.cc',
405         '../../src/ast-numbering.h',
406         '../../src/ast.cc',
407         '../../src/ast.h',
408         '../../src/background-parsing-task.cc',
409         '../../src/background-parsing-task.h',
410         '../../src/bailout-reason.cc',
411         '../../src/bailout-reason.h',
412         '../../src/basic-block-profiler.cc',
413         '../../src/basic-block-profiler.h',
414         '../../src/bignum-dtoa.cc',
415         '../../src/bignum-dtoa.h',
416         '../../src/bignum.cc',
417         '../../src/bignum.h',
418         '../../src/bit-vector.cc',
419         '../../src/bit-vector.h',
420         '../../src/bootstrapper.cc',
421         '../../src/bootstrapper.h',
422         '../../src/builtins.cc',
423         '../../src/builtins.h',
424         '../../src/bytecodes-irregexp.h',
425         '../../src/cached-powers.cc',
426         '../../src/cached-powers.h',
427         '../../src/char-predicates.cc',
428         '../../src/char-predicates-inl.h',
429         '../../src/char-predicates.h',
430         '../../src/checks.cc',
431         '../../src/checks.h',
432         '../../src/circular-queue-inl.h',
433         '../../src/circular-queue.h',
434         '../../src/code-factory.cc',
435         '../../src/code-factory.h',
436         '../../src/code-stubs.cc',
437         '../../src/code-stubs.h',
438         '../../src/code-stubs-hydrogen.cc',
439         '../../src/code.h',
440         '../../src/codegen.cc',
441         '../../src/codegen.h',
442         '../../src/compilation-cache.cc',
443         '../../src/compilation-cache.h',
444         '../../src/compilation-dependencies.cc',
445         '../../src/compilation-dependencies.h',
446         '../../src/compilation-statistics.cc',
447         '../../src/compilation-statistics.h',
448         '../../src/compiler/access-builder.cc',
449         '../../src/compiler/access-builder.h',
450         '../../src/compiler/all-nodes.cc',
451         '../../src/compiler/all-nodes.h',
452         '../../src/compiler/ast-graph-builder.cc',
453         '../../src/compiler/ast-graph-builder.h',
454         '../../src/compiler/ast-loop-assignment-analyzer.cc',
455         '../../src/compiler/ast-loop-assignment-analyzer.h',
456         '../../src/compiler/basic-block-instrumentor.cc',
457         '../../src/compiler/basic-block-instrumentor.h',
458         '../../src/compiler/change-lowering.cc',
459         '../../src/compiler/change-lowering.h',
460         '../../src/compiler/coalesced-live-ranges.cc',
461         '../../src/compiler/coalesced-live-ranges.h',
462         '../../src/compiler/code-generator-impl.h',
463         '../../src/compiler/code-generator.cc',
464         '../../src/compiler/code-generator.h',
465         '../../src/compiler/common-node-cache.cc',
466         '../../src/compiler/common-node-cache.h',
467         '../../src/compiler/common-operator-reducer.cc',
468         '../../src/compiler/common-operator-reducer.h',
469         '../../src/compiler/common-operator.cc',
470         '../../src/compiler/common-operator.h',
471         '../../src/compiler/control-builders.cc',
472         '../../src/compiler/control-builders.h',
473         '../../src/compiler/control-equivalence.cc',
474         '../../src/compiler/control-equivalence.h',
475         '../../src/compiler/control-flow-optimizer.cc',
476         '../../src/compiler/control-flow-optimizer.h',
477         '../../src/compiler/dead-code-elimination.cc',
478         '../../src/compiler/dead-code-elimination.h',
479         '../../src/compiler/diamond.h',
480         '../../src/compiler/frame.h',
481         '../../src/compiler/frame-elider.cc',
482         '../../src/compiler/frame-elider.h',
483         "../../src/compiler/frame-states.cc",
484         "../../src/compiler/frame-states.h",
485         '../../src/compiler/gap-resolver.cc',
486         '../../src/compiler/gap-resolver.h',
487         '../../src/compiler/graph-builder.h',
488         '../../src/compiler/graph-reducer.cc',
489         '../../src/compiler/graph-reducer.h',
490         '../../src/compiler/graph-replay.cc',
491         '../../src/compiler/graph-replay.h',
492         '../../src/compiler/graph-trimmer.cc',
493         '../../src/compiler/graph-trimmer.h',
494         '../../src/compiler/graph-visualizer.cc',
495         '../../src/compiler/graph-visualizer.h',
496         '../../src/compiler/graph.cc',
497         '../../src/compiler/graph.h',
498         '../../src/compiler/greedy-allocator.cc',
499         '../../src/compiler/greedy-allocator.h',
500         '../../src/compiler/instruction-codes.h',
501         '../../src/compiler/instruction-selector-impl.h',
502         '../../src/compiler/instruction-selector.cc',
503         '../../src/compiler/instruction-selector.h',
504         '../../src/compiler/instruction.cc',
505         '../../src/compiler/instruction.h',
506         '../../src/compiler/js-builtin-reducer.cc',
507         '../../src/compiler/js-builtin-reducer.h',
508         '../../src/compiler/js-context-specialization.cc',
509         '../../src/compiler/js-context-specialization.h',
510         '../../src/compiler/js-frame-specialization.cc',
511         '../../src/compiler/js-frame-specialization.h',
512         '../../src/compiler/js-generic-lowering.cc',
513         '../../src/compiler/js-generic-lowering.h',
514         '../../src/compiler/js-graph.cc',
515         '../../src/compiler/js-graph.h',
516         '../../src/compiler/js-inlining.cc',
517         '../../src/compiler/js-inlining.h',
518         '../../src/compiler/js-intrinsic-lowering.cc',
519         '../../src/compiler/js-intrinsic-lowering.h',
520         '../../src/compiler/js-operator.cc',
521         '../../src/compiler/js-operator.h',
522         '../../src/compiler/js-type-feedback.cc',
523         '../../src/compiler/js-type-feedback.h',
524         '../../src/compiler/js-type-feedback-lowering.cc',
525         '../../src/compiler/js-type-feedback-lowering.h',
526         '../../src/compiler/js-typed-lowering.cc',
527         '../../src/compiler/js-typed-lowering.h',
528         '../../src/compiler/jump-threading.cc',
529         '../../src/compiler/jump-threading.h',
530         '../../src/compiler/linkage-impl.h',
531         '../../src/compiler/linkage.cc',
532         '../../src/compiler/linkage.h',
533         '../../src/compiler/liveness-analyzer.cc',
534         '../../src/compiler/liveness-analyzer.h',
535         '../../src/compiler/load-elimination.cc',
536         '../../src/compiler/load-elimination.h',
537         '../../src/compiler/loop-analysis.cc',
538         '../../src/compiler/loop-analysis.h',
539         '../../src/compiler/loop-peeling.cc',
540         '../../src/compiler/loop-peeling.h',
541         '../../src/compiler/machine-operator-reducer.cc',
542         '../../src/compiler/machine-operator-reducer.h',
543         '../../src/compiler/machine-operator.cc',
544         '../../src/compiler/machine-operator.h',
545         '../../src/compiler/machine-type.cc',
546         '../../src/compiler/machine-type.h',
547         '../../src/compiler/move-optimizer.cc',
548         '../../src/compiler/move-optimizer.h',
549         '../../src/compiler/node-aux-data.h',
550         '../../src/compiler/node-cache.cc',
551         '../../src/compiler/node-cache.h',
552         '../../src/compiler/node-marker.cc',
553         '../../src/compiler/node-marker.h',
554         '../../src/compiler/node-matchers.cc',
555         '../../src/compiler/node-matchers.h',
556         '../../src/compiler/node-properties.cc',
557         '../../src/compiler/node-properties.h',
558         '../../src/compiler/node.cc',
559         '../../src/compiler/node.h',
560         '../../src/compiler/opcodes.cc',
561         '../../src/compiler/opcodes.h',
562         '../../src/compiler/operator-properties.cc',
563         '../../src/compiler/operator-properties.h',
564         '../../src/compiler/operator.cc',
565         '../../src/compiler/operator.h',
566         '../../src/compiler/osr.cc',
567         '../../src/compiler/osr.h',
568         '../../src/compiler/pipeline.cc',
569         '../../src/compiler/pipeline.h',
570         '../../src/compiler/pipeline-statistics.cc',
571         '../../src/compiler/pipeline-statistics.h',
572         '../../src/compiler/raw-machine-assembler.cc',
573         '../../src/compiler/raw-machine-assembler.h',
574         '../../src/compiler/register-allocator.cc',
575         '../../src/compiler/register-allocator.h',
576         '../../src/compiler/register-allocator-verifier.cc',
577         '../../src/compiler/register-allocator-verifier.h',
578         '../../src/compiler/register-configuration.cc',
579         '../../src/compiler/register-configuration.h',
580         '../../src/compiler/representation-change.h',
581         '../../src/compiler/schedule.cc',
582         '../../src/compiler/schedule.h',
583         '../../src/compiler/scheduler.cc',
584         '../../src/compiler/scheduler.h',
585         '../../src/compiler/select-lowering.cc',
586         '../../src/compiler/select-lowering.h',
587         '../../src/compiler/simplified-lowering.cc',
588         '../../src/compiler/simplified-lowering.h',
589         '../../src/compiler/simplified-operator-reducer.cc',
590         '../../src/compiler/simplified-operator-reducer.h',
591         '../../src/compiler/simplified-operator.cc',
592         '../../src/compiler/simplified-operator.h',
593         '../../src/compiler/source-position.cc',
594         '../../src/compiler/source-position.h',
595         '../../src/compiler/state-values-utils.cc',
596         '../../src/compiler/state-values-utils.h',
597         '../../src/compiler/tail-call-optimization.cc',
598         '../../src/compiler/tail-call-optimization.h',
599         '../../src/compiler/typer.cc',
600         '../../src/compiler/typer.h',
601         '../../src/compiler/value-numbering-reducer.cc',
602         '../../src/compiler/value-numbering-reducer.h',
603         '../../src/compiler/verifier.cc',
604         '../../src/compiler/verifier.h',
605         '../../src/compiler/zone-pool.cc',
606         '../../src/compiler/zone-pool.h',
607         '../../src/compiler.cc',
608         '../../src/compiler.h',
609         '../../src/contexts.cc',
610         '../../src/contexts.h',
611         '../../src/conversions-inl.h',
612         '../../src/conversions.cc',
613         '../../src/conversions.h',
614         '../../src/counters.cc',
615         '../../src/counters.h',
616         '../../src/cpu-profiler-inl.h',
617         '../../src/cpu-profiler.cc',
618         '../../src/cpu-profiler.h',
619         '../../src/date.cc',
620         '../../src/date.h',
621         '../../src/dateparser-inl.h',
622         '../../src/dateparser.cc',
623         '../../src/dateparser.h',
624         '../../src/debug.cc',
625         '../../src/debug.h',
626         '../../src/deoptimizer.cc',
627         '../../src/deoptimizer.h',
628         '../../src/disasm.h',
629         '../../src/disassembler.cc',
630         '../../src/disassembler.h',
631         '../../src/diy-fp.cc',
632         '../../src/diy-fp.h',
633         '../../src/double.h',
634         '../../src/dtoa.cc',
635         '../../src/dtoa.h',
636         '../../src/effects.h',
637         '../../src/elements-kind.cc',
638         '../../src/elements-kind.h',
639         '../../src/elements.cc',
640         '../../src/elements.h',
641         '../../src/execution.cc',
642         '../../src/execution.h',
643         '../../src/expression-classifier.h',
644         '../../src/extensions/externalize-string-extension.cc',
645         '../../src/extensions/externalize-string-extension.h',
646         '../../src/extensions/free-buffer-extension.cc',
647         '../../src/extensions/free-buffer-extension.h',
648         '../../src/extensions/gc-extension.cc',
649         '../../src/extensions/gc-extension.h',
650         '../../src/extensions/statistics-extension.cc',
651         '../../src/extensions/statistics-extension.h',
652         '../../src/extensions/trigger-failure-extension.cc',
653         '../../src/extensions/trigger-failure-extension.h',
654         '../../src/factory.cc',
655         '../../src/factory.h',
656         '../../src/fast-dtoa.cc',
657         '../../src/fast-dtoa.h',
658         '../../src/field-index.h',
659         '../../src/field-index-inl.h',
660         '../../src/fixed-dtoa.cc',
661         '../../src/fixed-dtoa.h',
662         '../../src/flag-definitions.h',
663         '../../src/flags.cc',
664         '../../src/flags.h',
665         '../../src/frames-inl.h',
666         '../../src/frames.cc',
667         '../../src/frames.h',
668         '../../src/full-codegen.cc',
669         '../../src/full-codegen.h',
670         '../../src/func-name-inferrer.cc',
671         '../../src/func-name-inferrer.h',
672         '../../src/gdb-jit.cc',
673         '../../src/gdb-jit.h',
674         '../../src/global-handles.cc',
675         '../../src/global-handles.h',
676         '../../src/globals.h',
677         '../../src/handles-inl.h',
678         '../../src/handles.cc',
679         '../../src/handles.h',
680         '../../src/hashmap.h',
681         '../../src/heap-profiler.cc',
682         '../../src/heap-profiler.h',
683         '../../src/heap-snapshot-generator-inl.h',
684         '../../src/heap-snapshot-generator.cc',
685         '../../src/heap-snapshot-generator.h',
686         '../../src/heap/memory-reducer.cc',
687         '../../src/heap/memory-reducer.h',
688         '../../src/heap/gc-idle-time-handler.cc',
689         '../../src/heap/gc-idle-time-handler.h',
690         '../../src/heap/gc-tracer.cc',
691         '../../src/heap/gc-tracer.h',
692         '../../src/heap/heap-inl.h',
693         '../../src/heap/heap.cc',
694         '../../src/heap/heap.h',
695         '../../src/heap/identity-map.cc',
696         '../../src/heap/identity-map.h',
697         '../../src/heap/incremental-marking-inl.h',
698         '../../src/heap/incremental-marking.cc',
699         '../../src/heap/incremental-marking.h',
700         '../../src/heap/mark-compact-inl.h',
701         '../../src/heap/mark-compact.cc',
702         '../../src/heap/mark-compact.h',
703         '../../src/heap/objects-visiting-inl.h',
704         '../../src/heap/objects-visiting.cc',
705         '../../src/heap/objects-visiting.h',
706         '../../src/heap/spaces-inl.h',
707         '../../src/heap/spaces.cc',
708         '../../src/heap/spaces.h',
709         '../../src/heap/store-buffer-inl.h',
710         '../../src/heap/store-buffer.cc',
711         '../../src/heap/store-buffer.h',
712         '../../src/hydrogen-alias-analysis.h',
713         '../../src/hydrogen-bce.cc',
714         '../../src/hydrogen-bce.h',
715         '../../src/hydrogen-bch.cc',
716         '../../src/hydrogen-bch.h',
717         '../../src/hydrogen-canonicalize.cc',
718         '../../src/hydrogen-canonicalize.h',
719         '../../src/hydrogen-check-elimination.cc',
720         '../../src/hydrogen-check-elimination.h',
721         '../../src/hydrogen-dce.cc',
722         '../../src/hydrogen-dce.h',
723         '../../src/hydrogen-dehoist.cc',
724         '../../src/hydrogen-dehoist.h',
725         '../../src/hydrogen-environment-liveness.cc',
726         '../../src/hydrogen-environment-liveness.h',
727         '../../src/hydrogen-escape-analysis.cc',
728         '../../src/hydrogen-escape-analysis.h',
729         '../../src/hydrogen-flow-engine.h',
730         '../../src/hydrogen-instructions.cc',
731         '../../src/hydrogen-instructions.h',
732         '../../src/hydrogen.cc',
733         '../../src/hydrogen.h',
734         '../../src/hydrogen-gvn.cc',
735         '../../src/hydrogen-gvn.h',
736         '../../src/hydrogen-infer-representation.cc',
737         '../../src/hydrogen-infer-representation.h',
738         '../../src/hydrogen-infer-types.cc',
739         '../../src/hydrogen-infer-types.h',
740         '../../src/hydrogen-load-elimination.cc',
741         '../../src/hydrogen-load-elimination.h',
742         '../../src/hydrogen-mark-deoptimize.cc',
743         '../../src/hydrogen-mark-deoptimize.h',
744         '../../src/hydrogen-mark-unreachable.cc',
745         '../../src/hydrogen-mark-unreachable.h',
746         '../../src/hydrogen-osr.cc',
747         '../../src/hydrogen-osr.h',
748         '../../src/hydrogen-range-analysis.cc',
749         '../../src/hydrogen-range-analysis.h',
750         '../../src/hydrogen-redundant-phi.cc',
751         '../../src/hydrogen-redundant-phi.h',
752         '../../src/hydrogen-removable-simulates.cc',
753         '../../src/hydrogen-removable-simulates.h',
754         '../../src/hydrogen-representation-changes.cc',
755         '../../src/hydrogen-representation-changes.h',
756         '../../src/hydrogen-sce.cc',
757         '../../src/hydrogen-sce.h',
758         '../../src/hydrogen-store-elimination.cc',
759         '../../src/hydrogen-store-elimination.h',
760         '../../src/hydrogen-types.cc',
761         '../../src/hydrogen-types.h',
762         '../../src/hydrogen-uint32-analysis.cc',
763         '../../src/hydrogen-uint32-analysis.h',
764         '../../src/i18n.cc',
765         '../../src/i18n.h',
766         '../../src/icu_util.cc',
767         '../../src/icu_util.h',
768         '../../src/ic/access-compiler.cc',
769         '../../src/ic/access-compiler.h',
770         '../../src/ic/call-optimization.cc',
771         '../../src/ic/call-optimization.h',
772         '../../src/ic/handler-compiler.cc',
773         '../../src/ic/handler-compiler.h',
774         '../../src/ic/ic-inl.h',
775         '../../src/ic/ic-state.cc',
776         '../../src/ic/ic-state.h',
777         '../../src/ic/ic.cc',
778         '../../src/ic/ic.h',
779         '../../src/ic/ic-compiler.cc',
780         '../../src/ic/ic-compiler.h',
781         '../../src/interface-descriptors.cc',
782         '../../src/interface-descriptors.h',
783         '../../src/interpreter-irregexp.cc',
784         '../../src/interpreter-irregexp.h',
785         '../../src/isolate.cc',
786         '../../src/isolate.h',
787         '../../src/json-parser.h',
788         '../../src/json-stringifier.h',
789         '../../src/jsregexp-inl.h',
790         '../../src/jsregexp.cc',
791         '../../src/jsregexp.h',
792         '../../src/layout-descriptor-inl.h',
793         '../../src/layout-descriptor.cc',
794         '../../src/layout-descriptor.h',
795         '../../src/list-inl.h',
796         '../../src/list.h',
797         '../../src/lithium-allocator-inl.h',
798         '../../src/lithium-allocator.cc',
799         '../../src/lithium-allocator.h',
800         '../../src/lithium-codegen.cc',
801         '../../src/lithium-codegen.h',
802         '../../src/lithium.cc',
803         '../../src/lithium.h',
804         '../../src/lithium-inl.h',
805         '../../src/liveedit.cc',
806         '../../src/liveedit.h',
807         '../../src/log-inl.h',
808         '../../src/log-utils.cc',
809         '../../src/log-utils.h',
810         '../../src/log.cc',
811         '../../src/log.h',
812         '../../src/lookup-inl.h',
813         '../../src/lookup.cc',
814         '../../src/lookup.h',
815         '../../src/macro-assembler.h',
816         '../../src/messages.cc',
817         '../../src/messages.h',
818         '../../src/modules.cc',
819         '../../src/modules.h',
820         '../../src/msan.h',
821         '../../src/objects-debug.cc',
822         '../../src/objects-inl.h',
823         '../../src/objects-printer.cc',
824         '../../src/objects.cc',
825         '../../src/objects.h',
826         '../../src/optimizing-compile-dispatcher.cc',
827         '../../src/optimizing-compile-dispatcher.h',
828         '../../src/ostreams.cc',
829         '../../src/ostreams.h',
830         '../../src/pattern-rewriter.cc',
831         '../../src/parser.cc',
832         '../../src/parser.h',
833         '../../src/pending-compilation-error-handler.cc',
834         '../../src/pending-compilation-error-handler.h',
835         '../../src/preparse-data-format.h',
836         '../../src/preparse-data.cc',
837         '../../src/preparse-data.h',
838         '../../src/preparser.cc',
839         '../../src/preparser.h',
840         '../../src/prettyprinter.cc',
841         '../../src/prettyprinter.h',
842         '../../src/profile-generator-inl.h',
843         '../../src/profile-generator.cc',
844         '../../src/profile-generator.h',
845         '../../src/property-details.h',
846         '../../src/property.cc',
847         '../../src/property.h',
848         '../../src/prototype.h',
849         '../../src/regexp-macro-assembler-irregexp-inl.h',
850         '../../src/regexp-macro-assembler-irregexp.cc',
851         '../../src/regexp-macro-assembler-irregexp.h',
852         '../../src/regexp-macro-assembler-tracer.cc',
853         '../../src/regexp-macro-assembler-tracer.h',
854         '../../src/regexp-macro-assembler.cc',
855         '../../src/regexp-macro-assembler.h',
856         '../../src/regexp-stack.cc',
857         '../../src/regexp-stack.h',
858         '../../src/rewriter.cc',
859         '../../src/rewriter.h',
860         '../../src/runtime-profiler.cc',
861         '../../src/runtime-profiler.h',
862         '../../src/runtime/runtime-array.cc',
863         '../../src/runtime/runtime-atomics.cc',
864         '../../src/runtime/runtime-classes.cc',
865         '../../src/runtime/runtime-collections.cc',
866         '../../src/runtime/runtime-compiler.cc',
867         '../../src/runtime/runtime-date.cc',
868         '../../src/runtime/runtime-debug.cc',
869         '../../src/runtime/runtime-forin.cc',
870         '../../src/runtime/runtime-function.cc',
871         '../../src/runtime/runtime-generator.cc',
872         '../../src/runtime/runtime-i18n.cc',
873         '../../src/runtime/runtime-internal.cc',
874         '../../src/runtime/runtime-json.cc',
875         '../../src/runtime/runtime-literals.cc',
876         '../../src/runtime/runtime-liveedit.cc',
877         '../../src/runtime/runtime-maths.cc',
878         '../../src/runtime/runtime-numbers.cc',
879         '../../src/runtime/runtime-object.cc',
880         '../../src/runtime/runtime-observe.cc',
881         '../../src/runtime/runtime-proxy.cc',
882         '../../src/runtime/runtime-regexp.cc',
883         '../../src/runtime/runtime-scopes.cc',
884         '../../src/runtime/runtime-simd.cc',
885         '../../src/runtime/runtime-strings.cc',
886         '../../src/runtime/runtime-symbol.cc',
887         '../../src/runtime/runtime-test.cc',
888         '../../src/runtime/runtime-typedarray.cc',
889         '../../src/runtime/runtime-uri.cc',
890         '../../src/runtime/runtime-utils.h',
891         '../../src/runtime/runtime.cc',
892         '../../src/runtime/runtime.h',
893         '../../src/safepoint-table.cc',
894         '../../src/safepoint-table.h',
895         '../../src/sampler.cc',
896         '../../src/sampler.h',
897         '../../src/scanner-character-streams.cc',
898         '../../src/scanner-character-streams.h',
899         '../../src/scanner.cc',
900         '../../src/scanner.h',
901         '../../src/scopeinfo.cc',
902         '../../src/scopeinfo.h',
903         '../../src/scopes.cc',
904         '../../src/scopes.h',
905         '../../src/signature.h',
906         '../../src/simulator.h',
907         '../../src/small-pointer-list.h',
908         '../../src/snapshot/natives.h',
909         '../../src/snapshot/serialize.cc',
910         '../../src/snapshot/serialize.h',
911         '../../src/snapshot/snapshot.h',
912         '../../src/snapshot/snapshot-common.cc',
913         '../../src/snapshot/snapshot-source-sink.cc',
914         '../../src/snapshot/snapshot-source-sink.h',
915         '../../src/splay-tree.h',
916         '../../src/splay-tree-inl.h',
917         '../../src/string-builder.cc',
918         '../../src/string-builder.h',
919         '../../src/string-search.cc',
920         '../../src/string-search.h',
921         '../../src/string-stream.cc',
922         '../../src/string-stream.h',
923         '../../src/strings-storage.cc',
924         '../../src/strings-storage.h',
925         '../../src/strtod.cc',
926         '../../src/strtod.h',
927         '../../src/ic/stub-cache.cc',
928         '../../src/ic/stub-cache.h',
929         '../../src/token.cc',
930         '../../src/token.h',
931         '../../src/transitions-inl.h',
932         '../../src/transitions.cc',
933         '../../src/transitions.h',
934         '../../src/type-feedback-vector-inl.h',
935         '../../src/type-feedback-vector.cc',
936         '../../src/type-feedback-vector.h',
937         '../../src/type-info.cc',
938         '../../src/type-info.h',
939         '../../src/types-inl.h',
940         '../../src/types.cc',
941         '../../src/types.h',
942         '../../src/typing.cc',
943         '../../src/typing.h',
944         '../../src/unbound-queue-inl.h',
945         '../../src/unbound-queue.h',
946         '../../src/unicode-inl.h',
947         '../../src/unicode.cc',
948         '../../src/unicode.h',
949         '../../src/unicode-decoder.cc',
950         '../../src/unicode-decoder.h',
951         '../../src/unique.h',
952         '../../src/utils.cc',
953         '../../src/utils.h',
954         '../../src/v8.cc',
955         '../../src/v8.h',
956         '../../src/v8memory.h',
957         '../../src/v8threads.cc',
958         '../../src/v8threads.h',
959         '../../src/variables.cc',
960         '../../src/variables.h',
961         '../../src/vector.h',
962         '../../src/version.cc',
963         '../../src/version.h',
964         '../../src/vm-state-inl.h',
965         '../../src/vm-state.h',
966         '../../src/zone.cc',
967         '../../src/zone.h',
968         '../../src/zone-allocator.h',
969         '../../src/zone-containers.h',
970         '../../src/third_party/fdlibm/fdlibm.cc',
971         '../../src/third_party/fdlibm/fdlibm.h',
972       ],
973       'conditions': [
974         ['want_separate_host_toolset==1', {
975           'toolsets': ['host', 'target'],
976         }, {
977           'toolsets': ['target'],
978         }],
979         ['v8_target_arch=="arm"', {
980           'sources': [  ### gcmole(arch:arm) ###
981             '../../src/arm/assembler-arm-inl.h',
982             '../../src/arm/assembler-arm.cc',
983             '../../src/arm/assembler-arm.h',
984             '../../src/arm/builtins-arm.cc',
985             '../../src/arm/code-stubs-arm.cc',
986             '../../src/arm/code-stubs-arm.h',
987             '../../src/arm/codegen-arm.cc',
988             '../../src/arm/codegen-arm.h',
989             '../../src/arm/constants-arm.h',
990             '../../src/arm/constants-arm.cc',
991             '../../src/arm/cpu-arm.cc',
992             '../../src/arm/debug-arm.cc',
993             '../../src/arm/deoptimizer-arm.cc',
994             '../../src/arm/disasm-arm.cc',
995             '../../src/arm/frames-arm.cc',
996             '../../src/arm/frames-arm.h',
997             '../../src/arm/full-codegen-arm.cc',
998             '../../src/arm/interface-descriptors-arm.cc',
999             '../../src/arm/interface-descriptors-arm.h',
1000             '../../src/arm/lithium-arm.cc',
1001             '../../src/arm/lithium-arm.h',
1002             '../../src/arm/lithium-codegen-arm.cc',
1003             '../../src/arm/lithium-codegen-arm.h',
1004             '../../src/arm/lithium-gap-resolver-arm.cc',
1005             '../../src/arm/lithium-gap-resolver-arm.h',
1006             '../../src/arm/macro-assembler-arm.cc',
1007             '../../src/arm/macro-assembler-arm.h',
1008             '../../src/arm/regexp-macro-assembler-arm.cc',
1009             '../../src/arm/regexp-macro-assembler-arm.h',
1010             '../../src/arm/simulator-arm.cc',
1011             '../../src/arm/simulator-arm.h',
1012             '../../src/compiler/arm/code-generator-arm.cc',
1013             '../../src/compiler/arm/instruction-codes-arm.h',
1014             '../../src/compiler/arm/instruction-selector-arm.cc',
1015             '../../src/compiler/arm/linkage-arm.cc',
1016             '../../src/ic/arm/access-compiler-arm.cc',
1017             '../../src/ic/arm/handler-compiler-arm.cc',
1018             '../../src/ic/arm/ic-arm.cc',
1019             '../../src/ic/arm/ic-compiler-arm.cc',
1020             '../../src/ic/arm/stub-cache-arm.cc',
1021           ],
1022         }],
1023         ['v8_target_arch=="arm64"', {
1024           'sources': [  ### gcmole(arch:arm64) ###
1025             '../../src/arm64/assembler-arm64.cc',
1026             '../../src/arm64/assembler-arm64.h',
1027             '../../src/arm64/assembler-arm64-inl.h',
1028             '../../src/arm64/builtins-arm64.cc',
1029             '../../src/arm64/codegen-arm64.cc',
1030             '../../src/arm64/codegen-arm64.h',
1031             '../../src/arm64/code-stubs-arm64.cc',
1032             '../../src/arm64/code-stubs-arm64.h',
1033             '../../src/arm64/constants-arm64.h',
1034             '../../src/arm64/cpu-arm64.cc',
1035             '../../src/arm64/debug-arm64.cc',
1036             '../../src/arm64/decoder-arm64.cc',
1037             '../../src/arm64/decoder-arm64.h',
1038             '../../src/arm64/decoder-arm64-inl.h',
1039             '../../src/arm64/delayed-masm-arm64.cc',
1040             '../../src/arm64/delayed-masm-arm64.h',
1041             '../../src/arm64/delayed-masm-arm64-inl.h',
1042             '../../src/arm64/deoptimizer-arm64.cc',
1043             '../../src/arm64/disasm-arm64.cc',
1044             '../../src/arm64/disasm-arm64.h',
1045             '../../src/arm64/frames-arm64.cc',
1046             '../../src/arm64/frames-arm64.h',
1047             '../../src/arm64/full-codegen-arm64.cc',
1048             '../../src/arm64/instructions-arm64.cc',
1049             '../../src/arm64/instructions-arm64.h',
1050             '../../src/arm64/instrument-arm64.cc',
1051             '../../src/arm64/instrument-arm64.h',
1052             '../../src/arm64/interface-descriptors-arm64.cc',
1053             '../../src/arm64/interface-descriptors-arm64.h',
1054             '../../src/arm64/lithium-arm64.cc',
1055             '../../src/arm64/lithium-arm64.h',
1056             '../../src/arm64/lithium-codegen-arm64.cc',
1057             '../../src/arm64/lithium-codegen-arm64.h',
1058             '../../src/arm64/lithium-gap-resolver-arm64.cc',
1059             '../../src/arm64/lithium-gap-resolver-arm64.h',
1060             '../../src/arm64/macro-assembler-arm64.cc',
1061             '../../src/arm64/macro-assembler-arm64.h',
1062             '../../src/arm64/macro-assembler-arm64-inl.h',
1063             '../../src/arm64/regexp-macro-assembler-arm64.cc',
1064             '../../src/arm64/regexp-macro-assembler-arm64.h',
1065             '../../src/arm64/simulator-arm64.cc',
1066             '../../src/arm64/simulator-arm64.h',
1067             '../../src/arm64/utils-arm64.cc',
1068             '../../src/arm64/utils-arm64.h',
1069             '../../src/compiler/arm64/code-generator-arm64.cc',
1070             '../../src/compiler/arm64/instruction-codes-arm64.h',
1071             '../../src/compiler/arm64/instruction-selector-arm64.cc',
1072             '../../src/compiler/arm64/linkage-arm64.cc',
1073             '../../src/ic/arm64/access-compiler-arm64.cc',
1074             '../../src/ic/arm64/handler-compiler-arm64.cc',
1075             '../../src/ic/arm64/ic-arm64.cc',
1076             '../../src/ic/arm64/ic-compiler-arm64.cc',
1077             '../../src/ic/arm64/stub-cache-arm64.cc',
1078           ],
1079         }],
1080         ['v8_target_arch=="ia32"', {
1081           'sources': [  ### gcmole(arch:ia32) ###
1082             '../../src/ia32/assembler-ia32-inl.h',
1083             '../../src/ia32/assembler-ia32.cc',
1084             '../../src/ia32/assembler-ia32.h',
1085             '../../src/ia32/builtins-ia32.cc',
1086             '../../src/ia32/code-stubs-ia32.cc',
1087             '../../src/ia32/code-stubs-ia32.h',
1088             '../../src/ia32/codegen-ia32.cc',
1089             '../../src/ia32/codegen-ia32.h',
1090             '../../src/ia32/cpu-ia32.cc',
1091             '../../src/ia32/debug-ia32.cc',
1092             '../../src/ia32/deoptimizer-ia32.cc',
1093             '../../src/ia32/disasm-ia32.cc',
1094             '../../src/ia32/frames-ia32.cc',
1095             '../../src/ia32/frames-ia32.h',
1096             '../../src/ia32/full-codegen-ia32.cc',
1097             '../../src/ia32/interface-descriptors-ia32.cc',
1098             '../../src/ia32/lithium-codegen-ia32.cc',
1099             '../../src/ia32/lithium-codegen-ia32.h',
1100             '../../src/ia32/lithium-gap-resolver-ia32.cc',
1101             '../../src/ia32/lithium-gap-resolver-ia32.h',
1102             '../../src/ia32/lithium-ia32.cc',
1103             '../../src/ia32/lithium-ia32.h',
1104             '../../src/ia32/macro-assembler-ia32.cc',
1105             '../../src/ia32/macro-assembler-ia32.h',
1106             '../../src/ia32/regexp-macro-assembler-ia32.cc',
1107             '../../src/ia32/regexp-macro-assembler-ia32.h',
1108             '../../src/compiler/ia32/code-generator-ia32.cc',
1109             '../../src/compiler/ia32/instruction-codes-ia32.h',
1110             '../../src/compiler/ia32/instruction-selector-ia32.cc',
1111             '../../src/compiler/ia32/linkage-ia32.cc',
1112             '../../src/ic/ia32/access-compiler-ia32.cc',
1113             '../../src/ic/ia32/handler-compiler-ia32.cc',
1114             '../../src/ic/ia32/ic-ia32.cc',
1115             '../../src/ic/ia32/ic-compiler-ia32.cc',
1116             '../../src/ic/ia32/stub-cache-ia32.cc',
1117           ],
1118         }],
1119         ['v8_target_arch=="x87"', {
1120           'sources': [  ### gcmole(arch:x87) ###
1121             '../../src/x87/assembler-x87-inl.h',
1122             '../../src/x87/assembler-x87.cc',
1123             '../../src/x87/assembler-x87.h',
1124             '../../src/x87/builtins-x87.cc',
1125             '../../src/x87/code-stubs-x87.cc',
1126             '../../src/x87/code-stubs-x87.h',
1127             '../../src/x87/codegen-x87.cc',
1128             '../../src/x87/codegen-x87.h',
1129             '../../src/x87/cpu-x87.cc',
1130             '../../src/x87/debug-x87.cc',
1131             '../../src/x87/deoptimizer-x87.cc',
1132             '../../src/x87/disasm-x87.cc',
1133             '../../src/x87/frames-x87.cc',
1134             '../../src/x87/frames-x87.h',
1135             '../../src/x87/full-codegen-x87.cc',
1136             '../../src/x87/interface-descriptors-x87.cc',
1137             '../../src/x87/lithium-codegen-x87.cc',
1138             '../../src/x87/lithium-codegen-x87.h',
1139             '../../src/x87/lithium-gap-resolver-x87.cc',
1140             '../../src/x87/lithium-gap-resolver-x87.h',
1141             '../../src/x87/lithium-x87.cc',
1142             '../../src/x87/lithium-x87.h',
1143             '../../src/x87/macro-assembler-x87.cc',
1144             '../../src/x87/macro-assembler-x87.h',
1145             '../../src/x87/regexp-macro-assembler-x87.cc',
1146             '../../src/x87/regexp-macro-assembler-x87.h',
1147             '../../src/compiler/x87/code-generator-x87.cc',
1148             '../../src/compiler/x87/instruction-codes-x87.h',
1149             '../../src/compiler/x87/instruction-selector-x87.cc',
1150             '../../src/compiler/x87/linkage-x87.cc',
1151             '../../src/ic/x87/access-compiler-x87.cc',
1152             '../../src/ic/x87/handler-compiler-x87.cc',
1153             '../../src/ic/x87/ic-x87.cc',
1154             '../../src/ic/x87/ic-compiler-x87.cc',
1155             '../../src/ic/x87/stub-cache-x87.cc',
1156           ],
1157         }],
1158         ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', {
1159           'sources': [  ### gcmole(arch:mipsel) ###
1160             '../../src/mips/assembler-mips.cc',
1161             '../../src/mips/assembler-mips.h',
1162             '../../src/mips/assembler-mips-inl.h',
1163             '../../src/mips/builtins-mips.cc',
1164             '../../src/mips/codegen-mips.cc',
1165             '../../src/mips/codegen-mips.h',
1166             '../../src/mips/code-stubs-mips.cc',
1167             '../../src/mips/code-stubs-mips.h',
1168             '../../src/mips/constants-mips.cc',
1169             '../../src/mips/constants-mips.h',
1170             '../../src/mips/cpu-mips.cc',
1171             '../../src/mips/debug-mips.cc',
1172             '../../src/mips/deoptimizer-mips.cc',
1173             '../../src/mips/disasm-mips.cc',
1174             '../../src/mips/frames-mips.cc',
1175             '../../src/mips/frames-mips.h',
1176             '../../src/mips/full-codegen-mips.cc',
1177             '../../src/mips/interface-descriptors-mips.cc',
1178             '../../src/mips/lithium-codegen-mips.cc',
1179             '../../src/mips/lithium-codegen-mips.h',
1180             '../../src/mips/lithium-gap-resolver-mips.cc',
1181             '../../src/mips/lithium-gap-resolver-mips.h',
1182             '../../src/mips/lithium-mips.cc',
1183             '../../src/mips/lithium-mips.h',
1184             '../../src/mips/macro-assembler-mips.cc',
1185             '../../src/mips/macro-assembler-mips.h',
1186             '../../src/mips/regexp-macro-assembler-mips.cc',
1187             '../../src/mips/regexp-macro-assembler-mips.h',
1188             '../../src/mips/simulator-mips.cc',
1189             '../../src/mips/simulator-mips.h',
1190             '../../src/compiler/mips/code-generator-mips.cc',
1191             '../../src/compiler/mips/instruction-codes-mips.h',
1192             '../../src/compiler/mips/instruction-selector-mips.cc',
1193             '../../src/compiler/mips/linkage-mips.cc',
1194             '../../src/ic/mips/access-compiler-mips.cc',
1195             '../../src/ic/mips/handler-compiler-mips.cc',
1196             '../../src/ic/mips/ic-mips.cc',
1197             '../../src/ic/mips/ic-compiler-mips.cc',
1198             '../../src/ic/mips/stub-cache-mips.cc',
1199           ],
1200         }],
1201         ['v8_target_arch=="mips64el"', {
1202           'sources': [  ### gcmole(arch:mips64el) ###
1203             '../../src/mips64/assembler-mips64.cc',
1204             '../../src/mips64/assembler-mips64.h',
1205             '../../src/mips64/assembler-mips64-inl.h',
1206             '../../src/mips64/builtins-mips64.cc',
1207             '../../src/mips64/codegen-mips64.cc',
1208             '../../src/mips64/codegen-mips64.h',
1209             '../../src/mips64/code-stubs-mips64.cc',
1210             '../../src/mips64/code-stubs-mips64.h',
1211             '../../src/mips64/constants-mips64.cc',
1212             '../../src/mips64/constants-mips64.h',
1213             '../../src/mips64/cpu-mips64.cc',
1214             '../../src/mips64/debug-mips64.cc',
1215             '../../src/mips64/deoptimizer-mips64.cc',
1216             '../../src/mips64/disasm-mips64.cc',
1217             '../../src/mips64/frames-mips64.cc',
1218             '../../src/mips64/frames-mips64.h',
1219             '../../src/mips64/full-codegen-mips64.cc',
1220             '../../src/mips64/interface-descriptors-mips64.cc',
1221             '../../src/mips64/lithium-codegen-mips64.cc',
1222             '../../src/mips64/lithium-codegen-mips64.h',
1223             '../../src/mips64/lithium-gap-resolver-mips64.cc',
1224             '../../src/mips64/lithium-gap-resolver-mips64.h',
1225             '../../src/mips64/lithium-mips64.cc',
1226             '../../src/mips64/lithium-mips64.h',
1227             '../../src/mips64/macro-assembler-mips64.cc',
1228             '../../src/mips64/macro-assembler-mips64.h',
1229             '../../src/mips64/regexp-macro-assembler-mips64.cc',
1230             '../../src/mips64/regexp-macro-assembler-mips64.h',
1231             '../../src/mips64/simulator-mips64.cc',
1232             '../../src/mips64/simulator-mips64.h',
1233             '../../src/compiler/mips64/code-generator-mips64.cc',
1234             '../../src/compiler/mips64/instruction-codes-mips64.h',
1235             '../../src/compiler/mips64/instruction-selector-mips64.cc',
1236             '../../src/compiler/mips64/linkage-mips64.cc',
1237             '../../src/ic/mips64/access-compiler-mips64.cc',
1238             '../../src/ic/mips64/handler-compiler-mips64.cc',
1239             '../../src/ic/mips64/ic-mips64.cc',
1240             '../../src/ic/mips64/ic-compiler-mips64.cc',
1241             '../../src/ic/mips64/stub-cache-mips64.cc',
1242           ],
1243         }],
1244         ['v8_target_arch=="x64" or v8_target_arch=="x32"', {
1245           'sources': [  ### gcmole(arch:x64) ###
1246             '../../src/x64/assembler-x64-inl.h',
1247             '../../src/x64/assembler-x64.cc',
1248             '../../src/x64/assembler-x64.h',
1249             '../../src/x64/builtins-x64.cc',
1250             '../../src/x64/code-stubs-x64.cc',
1251             '../../src/x64/code-stubs-x64.h',
1252             '../../src/x64/codegen-x64.cc',
1253             '../../src/x64/codegen-x64.h',
1254             '../../src/x64/cpu-x64.cc',
1255             '../../src/x64/debug-x64.cc',
1256             '../../src/x64/deoptimizer-x64.cc',
1257             '../../src/x64/disasm-x64.cc',
1258             '../../src/x64/frames-x64.cc',
1259             '../../src/x64/frames-x64.h',
1260             '../../src/x64/full-codegen-x64.cc',
1261             '../../src/x64/interface-descriptors-x64.cc',
1262             '../../src/x64/lithium-codegen-x64.cc',
1263             '../../src/x64/lithium-codegen-x64.h',
1264             '../../src/x64/lithium-gap-resolver-x64.cc',
1265             '../../src/x64/lithium-gap-resolver-x64.h',
1266             '../../src/x64/lithium-x64.cc',
1267             '../../src/x64/lithium-x64.h',
1268             '../../src/x64/macro-assembler-x64.cc',
1269             '../../src/x64/macro-assembler-x64.h',
1270             '../../src/x64/regexp-macro-assembler-x64.cc',
1271             '../../src/x64/regexp-macro-assembler-x64.h',
1272             '../../src/ic/x64/access-compiler-x64.cc',
1273             '../../src/ic/x64/handler-compiler-x64.cc',
1274             '../../src/ic/x64/ic-x64.cc',
1275             '../../src/ic/x64/ic-compiler-x64.cc',
1276             '../../src/ic/x64/stub-cache-x64.cc',
1277           ],
1278         }],
1279         ['v8_target_arch=="x64"', {
1280           'sources': [
1281             '../../src/compiler/x64/code-generator-x64.cc',
1282             '../../src/compiler/x64/instruction-codes-x64.h',
1283             '../../src/compiler/x64/instruction-selector-x64.cc',
1284             '../../src/compiler/x64/linkage-x64.cc',
1285           ],
1286         }],
1287         ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
1288           'sources': [  ### gcmole(arch:ppc) ###
1289             '../../src/ppc/assembler-ppc-inl.h',
1290             '../../src/ppc/assembler-ppc.cc',
1291             '../../src/ppc/assembler-ppc.h',
1292             '../../src/ppc/builtins-ppc.cc',
1293             '../../src/ppc/code-stubs-ppc.cc',
1294             '../../src/ppc/code-stubs-ppc.h',
1295             '../../src/ppc/codegen-ppc.cc',
1296             '../../src/ppc/codegen-ppc.h',
1297             '../../src/ppc/constants-ppc.h',
1298             '../../src/ppc/constants-ppc.cc',
1299             '../../src/ppc/cpu-ppc.cc',
1300             '../../src/ppc/debug-ppc.cc',
1301             '../../src/ppc/deoptimizer-ppc.cc',
1302             '../../src/ppc/disasm-ppc.cc',
1303             '../../src/ppc/frames-ppc.cc',
1304             '../../src/ppc/frames-ppc.h',
1305             '../../src/ppc/full-codegen-ppc.cc',
1306             '../../src/ppc/interface-descriptors-ppc.cc',
1307             '../../src/ppc/interface-descriptors-ppc.h',
1308             '../../src/ppc/lithium-ppc.cc',
1309             '../../src/ppc/lithium-ppc.h',
1310             '../../src/ppc/lithium-codegen-ppc.cc',
1311             '../../src/ppc/lithium-codegen-ppc.h',
1312             '../../src/ppc/lithium-gap-resolver-ppc.cc',
1313             '../../src/ppc/lithium-gap-resolver-ppc.h',
1314             '../../src/ppc/macro-assembler-ppc.cc',
1315             '../../src/ppc/macro-assembler-ppc.h',
1316             '../../src/ppc/regexp-macro-assembler-ppc.cc',
1317             '../../src/ppc/regexp-macro-assembler-ppc.h',
1318             '../../src/ppc/simulator-ppc.cc',
1319             '../../src/ppc/simulator-ppc.h',
1320             '../../src/compiler/ppc/code-generator-ppc.cc',
1321             '../../src/compiler/ppc/instruction-codes-ppc.h',
1322             '../../src/compiler/ppc/instruction-selector-ppc.cc',
1323             '../../src/compiler/ppc/linkage-ppc.cc',
1324             '../../src/ic/ppc/access-compiler-ppc.cc',
1325             '../../src/ic/ppc/handler-compiler-ppc.cc',
1326             '../../src/ic/ppc/ic-ppc.cc',
1327             '../../src/ic/ppc/ic-compiler-ppc.cc',
1328             '../../src/ic/ppc/stub-cache-ppc.cc',
1329           ],
1330         }],
1331         ['OS=="win"', {
1332           'variables': {
1333             'gyp_generators': '<!(echo $GYP_GENERATORS)',
1334           },
1335           'msvs_disabled_warnings': [4351, 4355, 4800],
1336           # When building Official, the .lib is too large and exceeds the 2G
1337           # limit. This breaks it into multiple pieces to avoid the limit.
1338           # See http://crbug.com/485155.
1339           'msvs_shard': 4,
1340         }],
1341         ['component=="shared_library"', {
1342           'defines': [
1343             'BUILDING_V8_SHARED',
1344             'V8_SHARED',
1345           ],
1346         }],
1347         ['v8_postmortem_support=="true"', {
1348           'sources': [
1349             '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
1350           ]
1351         }],
1352         ['v8_enable_i18n_support==1', {
1353           'dependencies': [
1354             '<(icu_gyp_path):icui18n',
1355             '<(icu_gyp_path):icuuc',
1356           ]
1357         }, {  # v8_enable_i18n_support==0
1358           'sources!': [
1359             '../../src/i18n.cc',
1360             '../../src/i18n.h',
1361           ],
1362         }],
1363         ['OS=="win" and v8_enable_i18n_support==1', {
1364           'dependencies': [
1365             '<(icu_gyp_path):icudata',
1366           ],
1367         }],
1368         ['icu_use_data_file_flag==1', {
1369           'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'],
1370         }, { # else icu_use_data_file_flag !=1
1371           'conditions': [
1372             ['OS=="win"', {
1373               'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'],
1374             }, {
1375               'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'],
1376             }],
1377           ],
1378         }],
1379       ],
1380     },
1381     {
1382       'target_name': 'v8_libbase',
1383       'type': 'static_library',
1384       'variables': {
1385         'optimize': 'max',
1386       },
1387       'include_dirs+': [
1388         '../..',
1389       ],
1390       'sources': [
1391         '../../src/base/adapters.h',
1392         '../../src/base/atomicops.h',
1393         '../../src/base/atomicops_internals_arm64_gcc.h',
1394         '../../src/base/atomicops_internals_arm_gcc.h',
1395         '../../src/base/atomicops_internals_atomicword_compat.h',
1396         '../../src/base/atomicops_internals_mac.h',
1397         '../../src/base/atomicops_internals_mips_gcc.h',
1398         '../../src/base/atomicops_internals_mips64_gcc.h',
1399         '../../src/base/atomicops_internals_portable.h',
1400         '../../src/base/atomicops_internals_ppc_gcc.h',
1401         '../../src/base/atomicops_internals_tsan.h',
1402         '../../src/base/atomicops_internals_x86_gcc.cc',
1403         '../../src/base/atomicops_internals_x86_gcc.h',
1404         '../../src/base/atomicops_internals_x86_msvc.h',
1405         '../../src/base/bits.cc',
1406         '../../src/base/bits.h',
1407         '../../src/base/build_config.h',
1408         '../../src/base/compiler-specific.h',
1409         '../../src/base/cpu.cc',
1410         '../../src/base/cpu.h',
1411         '../../src/base/division-by-constant.cc',
1412         '../../src/base/division-by-constant.h',
1413         '../../src/base/flags.h',
1414         '../../src/base/functional.cc',
1415         '../../src/base/functional.h',
1416         '../../src/base/iterator.h',
1417         '../../src/base/lazy-instance.h',
1418         '../../src/base/logging.cc',
1419         '../../src/base/logging.h',
1420         '../../src/base/macros.h',
1421         '../../src/base/once.cc',
1422         '../../src/base/once.h',
1423         '../../src/base/platform/elapsed-timer.h',
1424         '../../src/base/platform/time.cc',
1425         '../../src/base/platform/time.h',
1426         '../../src/base/platform/condition-variable.cc',
1427         '../../src/base/platform/condition-variable.h',
1428         '../../src/base/platform/mutex.cc',
1429         '../../src/base/platform/mutex.h',
1430         '../../src/base/platform/platform.h',
1431         '../../src/base/platform/semaphore.cc',
1432         '../../src/base/platform/semaphore.h',
1433         '../../src/base/safe_conversions.h',
1434         '../../src/base/safe_conversions_impl.h',
1435         '../../src/base/safe_math.h',
1436         '../../src/base/safe_math_impl.h',
1437         '../../src/base/smart-pointers.h',
1438         '../../src/base/sys-info.cc',
1439         '../../src/base/sys-info.h',
1440         '../../src/base/utils/random-number-generator.cc',
1441         '../../src/base/utils/random-number-generator.h',
1442       ],
1443       'conditions': [
1444         ['want_separate_host_toolset==1', {
1445           'toolsets': ['host', 'target'],
1446         }, {
1447           'toolsets': ['target'],
1448         }],
1449         ['OS=="linux"', {
1450             'conditions': [
1451               ['nacl_target_arch=="none"', {
1452                 'link_settings': {
1453                   'libraries': [
1454                     '-ldl',
1455                     '-lrt'
1456                   ],
1457                 },
1458               }, {
1459                 'defines': [
1460                   'V8_LIBRT_NOT_AVAILABLE=1',
1461                 ],
1462               }],
1463             ],
1464             'sources': [
1465               '../../src/base/platform/platform-linux.cc',
1466               '../../src/base/platform/platform-posix.cc'
1467             ],
1468           }
1469         ],
1470         ['OS=="android"', {
1471             'sources': [
1472               '../../src/base/platform/platform-posix.cc'
1473             ],
1474             'link_settings': {
1475               'target_conditions': [
1476                 ['_toolset=="host"', {
1477                   # Only include libdl and librt on host builds because they
1478                   # are included by default on Android target builds, and we
1479                   # don't want to re-include them here since this will change
1480                   # library order and break (see crbug.com/469973).
1481                   'libraries': [
1482                     '-ldl',
1483                     '-lrt'
1484                   ]
1485                 }]
1486               ]
1487             },
1488             'conditions': [
1489               ['host_os=="mac"', {
1490                 'target_conditions': [
1491                   ['_toolset=="host"', {
1492                     'sources': [
1493                       '../../src/base/platform/platform-macos.cc'
1494                     ]
1495                   }, {
1496                     'sources': [
1497                       '../../src/base/platform/platform-linux.cc'
1498                     ]
1499                   }],
1500                 ],
1501               }, {
1502                 'sources': [
1503                   '../../src/base/platform/platform-linux.cc'
1504                 ]
1505               }],
1506             ],
1507           },
1508         ],
1509         ['OS=="qnx"', {
1510             'link_settings': {
1511               'target_conditions': [
1512                 ['_toolset=="host" and host_os=="linux"', {
1513                   'libraries': [
1514                     '-lrt'
1515                   ],
1516                 }],
1517                 ['_toolset=="target"', {
1518                   'libraries': [
1519                     '-lbacktrace'
1520                   ],
1521                 }],
1522               ],
1523             },
1524             'sources': [
1525               '../../src/base/platform/platform-posix.cc',
1526               '../../src/base/qnx-math.h',
1527             ],
1528             'target_conditions': [
1529               ['_toolset=="host" and host_os=="linux"', {
1530                 'sources': [
1531                   '../../src/base/platform/platform-linux.cc'
1532                 ],
1533               }],
1534               ['_toolset=="host" and host_os=="mac"', {
1535                 'sources': [
1536                   '../../src/base/platform/platform-macos.cc'
1537                 ],
1538               }],
1539               ['_toolset=="target"', {
1540                 'sources': [
1541                   '../../src/base/platform/platform-qnx.cc'
1542                 ],
1543               }],
1544             ],
1545           },
1546         ],
1547         ['OS=="freebsd"', {
1548             'link_settings': {
1549               'libraries': [
1550                 '-L/usr/local/lib -lexecinfo',
1551             ]},
1552             'sources': [
1553               '../../src/base/platform/platform-freebsd.cc',
1554               '../../src/base/platform/platform-posix.cc'
1555             ],
1556           }
1557         ],
1558         ['OS=="openbsd"', {
1559             'link_settings': {
1560               'libraries': [
1561                 '-L/usr/local/lib -lexecinfo',
1562             ]},
1563             'sources': [
1564               '../../src/base/platform/platform-openbsd.cc',
1565               '../../src/base/platform/platform-posix.cc'
1566             ],
1567           }
1568         ],
1569         ['OS=="netbsd"', {
1570             'link_settings': {
1571               'libraries': [
1572                 '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo',
1573             ]},
1574             'sources': [
1575               '../../src/base/platform/platform-openbsd.cc',
1576               '../../src/base/platform/platform-posix.cc'
1577             ],
1578           }
1579         ],
1580         ['OS=="aix"', {
1581           'sources': [
1582             '../../src/base/platform/platform-aix.cc',
1583             '../../src/base/platform/platform-posix.cc'
1584           ]},
1585         ],
1586         ['OS=="solaris"', {
1587             'link_settings': {
1588               'libraries': [
1589                 '-lnsl -lrt',
1590             ]},
1591             'sources': [
1592               '../../src/base/platform/platform-solaris.cc',
1593               '../../src/base/platform/platform-posix.cc'
1594             ],
1595           }
1596         ],
1597         ['OS=="mac"', {
1598           'sources': [
1599             '../../src/base/platform/platform-macos.cc',
1600             '../../src/base/platform/platform-posix.cc'
1601           ]},
1602         ],
1603         ['OS=="win"', {
1604           'defines': [
1605             '_CRT_RAND_S'  # for rand_s()
1606           ],
1607           'variables': {
1608             'gyp_generators': '<!(echo $GYP_GENERATORS)',
1609           },
1610           'conditions': [
1611             ['gyp_generators=="make"', {
1612               'variables': {
1613                 'build_env': '<!(uname -o)',
1614               },
1615               'conditions': [
1616                 ['build_env=="Cygwin"', {
1617                   'sources': [
1618                     '../../src/base/platform/platform-cygwin.cc',
1619                     '../../src/base/platform/platform-posix.cc'
1620                   ],
1621                 }, {
1622                   'sources': [
1623                     '../../src/base/platform/platform-win32.cc',
1624                     '../../src/base/win32-headers.h',
1625                   ],
1626                 }],
1627               ],
1628               'link_settings':  {
1629                 'libraries': [ '-lwinmm', '-lws2_32' ],
1630               },
1631             }, {
1632               'sources': [
1633                 '../../src/base/platform/platform-win32.cc',
1634                 '../../src/base/win32-headers.h',
1635               ],
1636               'msvs_disabled_warnings': [4351, 4355, 4800],
1637               'link_settings':  {
1638                 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ],
1639               },
1640             }],
1641           ],
1642         }],
1643       ],
1644     },
1645     {
1646       'target_name': 'v8_libplatform',
1647       'type': 'static_library',
1648       'variables': {
1649         'optimize': 'max',
1650       },
1651       'dependencies': [
1652         'v8_libbase',
1653       ],
1654       'include_dirs+': [
1655         '../..',
1656       ],
1657       'sources': [
1658         '../../include/libplatform/libplatform.h',
1659         '../../src/libplatform/default-platform.cc',
1660         '../../src/libplatform/default-platform.h',
1661         '../../src/libplatform/task-queue.cc',
1662         '../../src/libplatform/task-queue.h',
1663         '../../src/libplatform/worker-thread.cc',
1664         '../../src/libplatform/worker-thread.h',
1665       ],
1666       'conditions': [
1667         ['want_separate_host_toolset==1', {
1668           'toolsets': ['host', 'target'],
1669         }, {
1670           'toolsets': ['target'],
1671         }],
1672       ],
1673     },
1674     {
1675       'target_name': 'natives_blob',
1676       'type': 'none',
1677       'conditions': [
1678         [ 'v8_use_external_startup_data==1', {
1679           'conditions': [
1680             ['want_separate_host_toolset==1', {
1681               'dependencies': ['js2c#host'],
1682             }, {
1683               'dependencies': ['js2c'],
1684             }],
1685           ],
1686           'actions': [{
1687             'action_name': 'concatenate_natives_blob',
1688             'inputs': [
1689               '../../tools/concatenate-files.py',
1690               '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
1691               '<(SHARED_INTERMEDIATE_DIR)/libraries-code-stub.bin',
1692               '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
1693               '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
1694             ],
1695             'conditions': [
1696               ['want_separate_host_toolset==1', {
1697                 'target_conditions': [
1698                   ['_toolset=="host"', {
1699                     'outputs': [
1700                       '<(PRODUCT_DIR)/natives_blob_host.bin',
1701                     ],
1702                     'action': [
1703                       'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin'
1704                     ],
1705                   }, {
1706                     'outputs': [
1707                       '<(PRODUCT_DIR)/natives_blob.bin',
1708                     ],
1709                     'action': [
1710                       'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
1711                     ],
1712                   }],
1713                 ],
1714               }, {
1715                 'outputs': [
1716                   '<(PRODUCT_DIR)/natives_blob.bin',
1717                 ],
1718                 'action': [
1719                   'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
1720                 ],
1721               }],
1722             ],
1723           }],
1724         }],
1725         ['want_separate_host_toolset==1', {
1726           'toolsets': ['host', 'target'],
1727         }, {
1728           'toolsets': ['target'],
1729         }],
1730       ]
1731     },
1732     {
1733       'target_name': 'js2c',
1734       'type': 'none',
1735       'conditions': [
1736         ['want_separate_host_toolset==1', {
1737           'toolsets': ['host'],
1738         }, {
1739           'toolsets': ['target'],
1740         }],
1741         ['v8_enable_i18n_support==1', {
1742           'variables': {
1743             'i18n_library_files': [
1744               '../../src/i18n.js',
1745             ],
1746           },
1747         }, {
1748           'variables': {
1749             'i18n_library_files': [],
1750           },
1751         }],
1752       ],
1753       'variables': {
1754         'library_files': [
1755           '../../src/macros.py',
1756           '../../src/messages.h',
1757           '../../src/runtime.js',
1758           '../../src/prologue.js',
1759           '../../src/v8natives.js',
1760           '../../src/symbol.js',
1761           '../../src/array.js',
1762           '../../src/string.js',
1763           '../../src/uri.js',
1764           '../../src/math.js',
1765           '../../src/third_party/fdlibm/fdlibm.js',
1766           '../../src/date.js',
1767           '../../src/regexp.js',
1768           '../../src/arraybuffer.js',
1769           '../../src/typedarray.js',
1770           '../../src/iterator-prototype.js',
1771           '../../src/generator.js',
1772           '../../src/object-observe.js',
1773           '../../src/collection.js',
1774           '../../src/weak-collection.js',
1775           '../../src/collection-iterator.js',
1776           '../../src/promise.js',
1777           '../../src/messages.js',
1778           '../../src/json.js',
1779           '../../src/array-iterator.js',
1780           '../../src/string-iterator.js',
1781           '../../src/debug-debugger.js',
1782           '../../src/mirror-debugger.js',
1783           '../../src/liveedit-debugger.js',
1784           '../../src/templates.js',
1785           '../../src/harmony-array.js',
1786           '../../src/harmony-typedarray.js',
1787         ],
1788         'experimental_library_files': [
1789           '../../src/macros.py',
1790           '../../src/messages.h',
1791           '../../src/proxy.js',
1792           '../../src/generator.js',
1793           '../../src/harmony-atomics.js',
1794           '../../src/harmony-array-includes.js',
1795           '../../src/harmony-concat-spreadable.js',
1796           '../../src/harmony-tostring.js',
1797           '../../src/harmony-regexp.js',
1798           '../../src/harmony-reflect.js',
1799           '../../src/harmony-spread.js',
1800           '../../src/harmony-object.js',
1801           '../../src/harmony-sharedarraybuffer.js',
1802           '../../src/harmony-simd.js',
1803         ],
1804         'code_stub_library_files': [
1805           '../../src/macros.py',
1806           '../../src/messages.h',
1807           '../../src/code-stubs.js',
1808         ],
1809         'libraries_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
1810         'libraries_code_stub_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-code-stub.bin',
1811         'libraries_experimental_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
1812         'libraries_extras_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
1813       },
1814       'actions': [
1815         {
1816           'action_name': 'js2c',
1817           'inputs': [
1818             '../../tools/js2c.py',
1819             '<@(library_files)',
1820             '<@(i18n_library_files)'
1821           ],
1822           'outputs': [
1823             '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
1824           ],
1825           'action': [
1826             'python',
1827             '../../tools/js2c.py',
1828             '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
1829             'CORE',
1830             '<@(library_files)',
1831             '<@(i18n_library_files)'
1832           ],
1833           'conditions': [
1834             [ 'v8_use_external_startup_data==1', {
1835               'outputs': ['<@(libraries_bin_file)'],
1836               'action': [
1837                 '--startup_blob', '<@(libraries_bin_file)',
1838               ],
1839             }],
1840           ],
1841         },
1842         {
1843           'action_name': 'js2c_experimental',
1844           'inputs': [
1845             '../../tools/js2c.py',
1846             '<@(experimental_library_files)',
1847           ],
1848           'outputs': [
1849             '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
1850           ],
1851           'action': [
1852             'python',
1853             '../../tools/js2c.py',
1854             '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
1855             'EXPERIMENTAL',
1856             '<@(experimental_library_files)'
1857           ],
1858           'conditions': [
1859             [ 'v8_use_external_startup_data==1', {
1860               'outputs': ['<@(libraries_experimental_bin_file)'],
1861               'action': [
1862                 '--startup_blob', '<@(libraries_experimental_bin_file)'
1863               ],
1864             }],
1865           ],
1866         },
1867         {
1868           'action_name': 'js2c_code_stubs',
1869           'inputs': [
1870             '../../tools/js2c.py',
1871             '<@(code_stub_library_files)',
1872           ],
1873           'outputs': [
1874             '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc',
1875           ],
1876           'action': [
1877             'python',
1878             '../../tools/js2c.py',
1879             '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc',
1880             'CODE_STUB',
1881             '<@(code_stub_library_files)'
1882           ],
1883           'conditions': [
1884             [ 'v8_use_external_startup_data==1', {
1885               'outputs': ['<@(libraries_code_stub_bin_file)'],
1886               'action': [
1887                 '--startup_blob', '<@(libraries_code_stub_bin_file)'
1888               ],
1889             }],
1890           ],
1891         },
1892         {
1893           'action_name': 'js2c_extras',
1894           'inputs': [
1895             '../../tools/js2c.py',
1896             '<@(v8_extra_library_files)',
1897           ],
1898           'outputs': [
1899             '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
1900           ],
1901           'action': [
1902             'python',
1903             '../../tools/js2c.py',
1904             '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
1905             'EXTRAS',
1906             '<@(v8_extra_library_files)',
1907           ],
1908           'conditions': [
1909             [ 'v8_use_external_startup_data==1', {
1910               'outputs': ['<@(libraries_extras_bin_file)'],
1911               'action': [
1912                 '--startup_blob', '<@(libraries_extras_bin_file)',
1913               ],
1914             }],
1915           ],
1916         },
1917       ],
1918     },
1919     {
1920       'target_name': 'postmortem-metadata',
1921       'type': 'none',
1922       'variables': {
1923         'heapobject_files': [
1924             '../../src/objects.h',
1925             '../../src/objects-inl.h',
1926         ],
1927       },
1928       'actions': [
1929           {
1930             'action_name': 'gen-postmortem-metadata',
1931             'inputs': [
1932               '../../tools/gen-postmortem-metadata.py',
1933               '<@(heapobject_files)',
1934             ],
1935             'outputs': [
1936               '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
1937             ],
1938             'action': [
1939               'python',
1940               '../../tools/gen-postmortem-metadata.py',
1941               '<@(_outputs)',
1942               '<@(heapobject_files)'
1943             ]
1944           }
1945         ]
1946     },
1947     {
1948       'target_name': 'mksnapshot',
1949       'type': 'executable',
1950       'dependencies': ['v8_base', 'v8_nosnapshot', 'v8_libplatform'],
1951       'include_dirs+': [
1952         '../..',
1953       ],
1954       'sources': [
1955         '../../src/snapshot/mksnapshot.cc',
1956       ],
1957       'conditions': [
1958         ['v8_enable_i18n_support==1', {
1959           'dependencies': [
1960             '<(icu_gyp_path):icui18n',
1961             '<(icu_gyp_path):icuuc',
1962           ]
1963         }],
1964         ['want_separate_host_toolset==1', {
1965           'toolsets': ['host'],
1966         }, {
1967           'toolsets': ['target'],
1968         }],
1969       ],
1970     },
1971   ],
1972 }