Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / v8 / BUILD.gn
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 # TODO(jochen): These will need to be user-settable to support standalone V8
6 # builds.
7 v8_compress_startup_data = "off"
8 v8_enable_i18n_support = true
9
10 # TODO(jochen): Add support for want_seperate_host_toolset.
11 # TODO(jochen): Add support for v8_target_arch.
12 # TODO(jochen): Add features.gypi and toolchain.gypi support.
13
14
15 ###############################################################################
16 # Configurations
17 #
18 config("internal_config") {
19   visibility = ":*"  # Only targets in this file can depend on this.
20
21   include_dirs = [ "src" ]
22
23   if (component_mode == "shared_library") {
24     defines = [
25       "BUILDING_V8_SHARED",
26       "V8_SHARED",
27     ]
28   }
29 }
30
31 ###############################################################################
32 # Actions
33 #
34
35 # TODO(jochen): Do actions need visibility settings as well?
36 action("generate_trig_table") {
37   script = "tools/generate-trig-table.py"
38
39   outputs = [
40     "$target_gen_dir/trig-table.cc"
41   ]
42
43   args = rebase_path(outputs, root_build_dir)
44 }
45
46 action("js2c") {
47   script = "tools/js2c.py"
48
49   # The script depends on this other script, this rule causes a rebuild if it
50   # changes.
51   source_prereqs = [ "tools/jsmin.py" ]
52
53   sources = [
54     "src/runtime.js",
55     "src/v8natives.js",
56     "src/array.js",
57     "src/string.js",
58     "src/uri.js",
59     "src/math.js",
60     "src/messages.js",
61     "src/apinatives.js",
62     "src/debug-debugger.js",
63     "src/mirror-debugger.js",
64     "src/liveedit-debugger.js",
65     "src/date.js",
66     "src/json.js",
67     "src/regexp.js",
68     "src/arraybuffer.js",
69     "src/typedarray.js",
70     "src/object-observe.js",
71     "src/macros.py",
72   ]
73
74   outputs = [
75     "$target_gen_dir/libraries.cc"
76   ]
77
78   if (v8_enable_i18n_support) {
79     sources += [ "src/i18n.js" ]
80   }
81
82   args =
83     rebase_path(outputs, root_build_dir) +
84     [ "EXPERIMENTAL", v8_compress_startup_data ] + 
85     rebase_path(sources, root_build_dir)
86 }
87
88 action("js2c_experimental") {
89   script = "tools/js2c.py"
90
91   # The script depends on this other script, this rule causes a rebuild if it
92   # changes.
93   source_prereqs = [ "tools/jsmin.py" ]
94
95   sources = [
96     "src/macros.py",
97     "src/symbol.js",
98     "src/proxy.js",
99     "src/collection.js",
100     "src/weak_collection.js",
101     "src/promise.js",
102     "src/generator.js",
103     "src/array-iterator.js",
104     "src/harmony-string.js",
105     "src/harmony-array.js",
106     "src/harmony-math.js",
107   ]
108
109   outputs = [
110     "$target_gen_dir/experimental-libraries.cc"
111   ]
112
113   args =
114     rebase_path(outputs, root_build_dir) +
115     [ "CORE", v8_compress_startup_data ] + 
116     rebase_path(sources, root_build_dir)
117 }
118
119 action("postmortem-metadata") {
120   script = "tools/gen-postmortem-metadata.py"
121
122   sources = [
123     "src/objects.h",
124     "src/objects-inl.h",
125   ]
126
127   outputs = [
128     "$target_gen_dir/debug-support.cc"
129   ]
130
131   args =
132     rebase_path(outputs, root_build_dir) +
133     rebase_path(sources, root_build_dir)
134 }
135
136 ###############################################################################
137 # Source Sets (aka static libraries)
138 #
139
140 source_set("v8_nosnapshot") {
141   visibility = ":*"  # Only targets in this file can depend on this.
142
143   deps = [
144     ":js2c",
145     ":js2c_experimental",
146     ":generate_trig_table",
147     ":v8_base",
148   ]
149
150   sources = [
151     "$target_gen_dir/libraries.cc",
152     "$target_gen_dir/experimental-libraries.cc",
153     "$target_gen_dir/trig-table.cc",
154     "src/snapshot-empty.cc",
155   ]
156
157   configs += [ ":internal_config" ]
158 }
159
160 source_set("v8_base") {
161   visibility = ":*"  # Only targets in this file can depend on this.
162
163   sources = [
164     "src/accessors.cc",
165     "src/accessors.h",
166     "src/allocation.cc",
167     "src/allocation.h",
168     "src/allocation-site-scopes.cc",
169     "src/allocation-site-scopes.h",
170     "src/allocation-tracker.cc",
171     "src/allocation-tracker.h",
172     "src/api.cc",
173     "src/api.h",
174     "src/arguments.cc",
175     "src/arguments.h",
176     "src/assembler.cc",
177     "src/assembler.h",
178     "src/assert-scope.h",
179     "src/assert-scope.cc",
180     "src/ast.cc",
181     "src/ast.h",
182     "src/atomicops.h",
183     "src/atomicops_internals_x86_gcc.cc",
184     "src/bignum-dtoa.cc",
185     "src/bignum-dtoa.h",
186     "src/bignum.cc",
187     "src/bignum.h",
188     "src/bootstrapper.cc",
189     "src/bootstrapper.h",
190     "src/builtins.cc",
191     "src/builtins.h",
192     "src/bytecodes-irregexp.h",
193     "src/cached-powers.cc",
194     "src/cached-powers.h",
195     "src/char-predicates-inl.h",
196     "src/char-predicates.h",
197     "src/checks.cc",
198     "src/checks.h",
199     "src/circular-queue-inl.h",
200     "src/circular-queue.h",
201     "src/code-stubs.cc",
202     "src/code-stubs.h",
203     "src/code-stubs-hydrogen.cc",
204     "src/code.h",
205     "src/codegen.cc",
206     "src/codegen.h",
207     "src/compilation-cache.cc",
208     "src/compilation-cache.h",
209     "src/compiler.cc",
210     "src/compiler.h",
211     "src/contexts.cc",
212     "src/contexts.h",
213     "src/conversions-inl.h",
214     "src/conversions.cc",
215     "src/conversions.h",
216     "src/counters.cc",
217     "src/counters.h",
218     "src/cpu-profiler-inl.h",
219     "src/cpu-profiler.cc",
220     "src/cpu-profiler.h",
221     "src/cpu.cc",
222     "src/cpu.h",
223     "src/data-flow.cc",
224     "src/data-flow.h",
225     "src/date.cc",
226     "src/date.h",
227     "src/dateparser-inl.h",
228     "src/dateparser.cc",
229     "src/dateparser.h",
230     "src/debug-agent.cc",
231     "src/debug-agent.h",
232     "src/debug.cc",
233     "src/debug.h",
234     "src/deoptimizer.cc",
235     "src/deoptimizer.h",
236     "src/disasm.h",
237     "src/disassembler.cc",
238     "src/disassembler.h",
239     "src/diy-fp.cc",
240     "src/diy-fp.h",
241     "src/double.h",
242     "src/dtoa.cc",
243     "src/dtoa.h",
244     "src/effects.h",
245     "src/elements-kind.cc",
246     "src/elements-kind.h",
247     "src/elements.cc",
248     "src/elements.h",
249     "src/execution.cc",
250     "src/execution.h",
251     "src/extensions/externalize-string-extension.cc",
252     "src/extensions/externalize-string-extension.h",
253     "src/extensions/free-buffer-extension.cc",
254     "src/extensions/free-buffer-extension.h",
255     "src/extensions/gc-extension.cc",
256     "src/extensions/gc-extension.h",
257     "src/extensions/statistics-extension.cc",
258     "src/extensions/statistics-extension.h",
259     "src/extensions/trigger-failure-extension.cc",
260     "src/extensions/trigger-failure-extension.h",
261     "src/factory.cc",
262     "src/factory.h",
263     "src/fast-dtoa.cc",
264     "src/fast-dtoa.h",
265     "src/feedback-slots.h",
266     "src/fixed-dtoa.cc",
267     "src/fixed-dtoa.h",
268     "src/flag-definitions.h",
269     "src/flags.cc",
270     "src/flags.h",
271     "src/frames-inl.h",
272     "src/frames.cc",
273     "src/frames.h",
274     "src/full-codegen.cc",
275     "src/full-codegen.h",
276     "src/func-name-inferrer.cc",
277     "src/func-name-inferrer.h",
278     "src/gdb-jit.cc",
279     "src/gdb-jit.h",
280     "src/global-handles.cc",
281     "src/global-handles.h",
282     "src/globals.h",
283     "src/handles-inl.h",
284     "src/handles.cc",
285     "src/handles.h",
286     "src/hashmap.h",
287     "src/heap-inl.h",
288     "src/heap-profiler.cc",
289     "src/heap-profiler.h",
290     "src/heap-snapshot-generator-inl.h",
291     "src/heap-snapshot-generator.cc",
292     "src/heap-snapshot-generator.h",
293     "src/heap.cc",
294     "src/heap.h",
295     "src/hydrogen-alias-analysis.h",
296     "src/hydrogen-bce.cc",
297     "src/hydrogen-bce.h",
298     "src/hydrogen-bch.cc",
299     "src/hydrogen-bch.h",
300     "src/hydrogen-canonicalize.cc",
301     "src/hydrogen-canonicalize.h",
302     "src/hydrogen-check-elimination.cc",
303     "src/hydrogen-check-elimination.h",
304     "src/hydrogen-dce.cc",
305     "src/hydrogen-dce.h",
306     "src/hydrogen-dehoist.cc",
307     "src/hydrogen-dehoist.h",
308     "src/hydrogen-environment-liveness.cc",
309     "src/hydrogen-environment-liveness.h",
310     "src/hydrogen-escape-analysis.cc",
311     "src/hydrogen-escape-analysis.h",
312     "src/hydrogen-flow-engine.h",
313     "src/hydrogen-instructions.cc",
314     "src/hydrogen-instructions.h",
315     "src/hydrogen.cc",
316     "src/hydrogen.h",
317     "src/hydrogen-gvn.cc",
318     "src/hydrogen-gvn.h",
319     "src/hydrogen-infer-representation.cc",
320     "src/hydrogen-infer-representation.h",
321     "src/hydrogen-infer-types.cc",
322     "src/hydrogen-infer-types.h",
323     "src/hydrogen-load-elimination.cc",
324     "src/hydrogen-load-elimination.h",
325     "src/hydrogen-mark-deoptimize.cc",
326     "src/hydrogen-mark-deoptimize.h",
327     "src/hydrogen-mark-unreachable.cc",
328     "src/hydrogen-mark-unreachable.h",
329     "src/hydrogen-osr.cc",
330     "src/hydrogen-osr.h",
331     "src/hydrogen-range-analysis.cc",
332     "src/hydrogen-range-analysis.h",
333     "src/hydrogen-redundant-phi.cc",
334     "src/hydrogen-redundant-phi.h",
335     "src/hydrogen-removable-simulates.cc",
336     "src/hydrogen-removable-simulates.h",
337     "src/hydrogen-representation-changes.cc",
338     "src/hydrogen-representation-changes.h",
339     "src/hydrogen-sce.cc",
340     "src/hydrogen-sce.h",
341     "src/hydrogen-store-elimination.cc",
342     "src/hydrogen-store-elimination.h",
343     "src/hydrogen-uint32-analysis.cc",
344     "src/hydrogen-uint32-analysis.h",
345     "src/i18n.cc",
346     "src/i18n.h",
347     "src/icu_util.cc",
348     "src/icu_util.h",
349     "src/ic-inl.h",
350     "src/ic.cc",
351     "src/ic.h",
352     "src/incremental-marking.cc",
353     "src/incremental-marking.h",
354     "src/interface.cc",
355     "src/interface.h",
356     "src/interpreter-irregexp.cc",
357     "src/interpreter-irregexp.h",
358     "src/isolate.cc",
359     "src/isolate.h",
360     "src/json-parser.h",
361     "src/json-stringifier.h",
362     "src/jsregexp-inl.h",
363     "src/jsregexp.cc",
364     "src/jsregexp.h",
365     "src/lazy-instance.h",
366     # TODO(jochen): move libplatform/ files to their own target.
367     "src/libplatform/default-platform.cc",
368     "src/libplatform/default-platform.h",
369     "src/libplatform/task-queue.cc",
370     "src/libplatform/task-queue.h",
371     "src/libplatform/worker-thread.cc",
372     "src/libplatform/worker-thread.h",
373     "src/list-inl.h",
374     "src/list.h",
375     "src/lithium-allocator-inl.h",
376     "src/lithium-allocator.cc",
377     "src/lithium-allocator.h",
378     "src/lithium-codegen.cc",
379     "src/lithium-codegen.h",
380     "src/lithium.cc",
381     "src/lithium.h",
382     "src/liveedit.cc",
383     "src/liveedit.h",
384     "src/log-inl.h",
385     "src/log-utils.cc",
386     "src/log-utils.h",
387     "src/log.cc",
388     "src/log.h",
389     "src/macro-assembler.h",
390     "src/mark-compact.cc",
391     "src/mark-compact.h",
392     "src/messages.cc",
393     "src/messages.h",
394     "src/msan.h",
395     "src/natives.h",
396     "src/objects-debug.cc",
397     "src/objects-inl.h",
398     "src/objects-printer.cc",
399     "src/objects-visiting.cc",
400     "src/objects-visiting.h",
401     "src/objects.cc",
402     "src/objects.h",
403     "src/once.cc",
404     "src/once.h",
405     "src/optimizing-compiler-thread.h",
406     "src/optimizing-compiler-thread.cc",
407     "src/parser.cc",
408     "src/parser.h",
409     "src/platform/elapsed-timer.h",
410     "src/platform/time.cc",
411     "src/platform/time.h",
412     "src/platform.h",
413     "src/platform/condition-variable.cc",
414     "src/platform/condition-variable.h",
415     "src/platform/mutex.cc",
416     "src/platform/mutex.h",
417     "src/platform/semaphore.cc",
418     "src/platform/semaphore.h",
419     "src/platform/socket.cc",
420     "src/platform/socket.h",
421     "src/preparse-data-format.h",
422     "src/preparse-data.cc",
423     "src/preparse-data.h",
424     "src/preparser.cc",
425     "src/preparser.h",
426     "src/prettyprinter.cc",
427     "src/prettyprinter.h",
428     "src/profile-generator-inl.h",
429     "src/profile-generator.cc",
430     "src/profile-generator.h",
431     "src/property-details.h",
432     "src/property.cc",
433     "src/property.h",
434     "src/regexp-macro-assembler-irregexp-inl.h",
435     "src/regexp-macro-assembler-irregexp.cc",
436     "src/regexp-macro-assembler-irregexp.h",
437     "src/regexp-macro-assembler-tracer.cc",
438     "src/regexp-macro-assembler-tracer.h",
439     "src/regexp-macro-assembler.cc",
440     "src/regexp-macro-assembler.h",
441     "src/regexp-stack.cc",
442     "src/regexp-stack.h",
443     "src/rewriter.cc",
444     "src/rewriter.h",
445     "src/runtime-profiler.cc",
446     "src/runtime-profiler.h",
447     "src/runtime.cc",
448     "src/runtime.h",
449     "src/safepoint-table.cc",
450     "src/safepoint-table.h",
451     "src/sampler.cc",
452     "src/sampler.h",
453     "src/scanner-character-streams.cc",
454     "src/scanner-character-streams.h",
455     "src/scanner.cc",
456     "src/scanner.h",
457     "src/scopeinfo.cc",
458     "src/scopeinfo.h",
459     "src/scopes.cc",
460     "src/scopes.h",
461     "src/serialize.cc",
462     "src/serialize.h",
463     "src/small-pointer-list.h",
464     "src/smart-pointers.h",
465     "src/snapshot-common.cc",
466     "src/snapshot.h",
467     "src/spaces-inl.h",
468     "src/spaces.cc",
469     "src/spaces.h",
470     "src/store-buffer-inl.h",
471     "src/store-buffer.cc",
472     "src/store-buffer.h",
473     "src/string-search.cc",
474     "src/string-search.h",
475     "src/string-stream.cc",
476     "src/string-stream.h",
477     "src/strtod.cc",
478     "src/strtod.h",
479     "src/stub-cache.cc",
480     "src/stub-cache.h",
481     "src/sweeper-thread.h",
482     "src/sweeper-thread.cc",
483     "src/token.cc",
484     "src/token.h",
485     "src/transitions-inl.h",
486     "src/transitions.cc",
487     "src/transitions.h",
488     "src/type-info.cc",
489     "src/type-info.h",
490     "src/types-inl.h",
491     "src/types.cc",
492     "src/types.h",
493     "src/typing.cc",
494     "src/typing.h",
495     "src/unbound-queue-inl.h",
496     "src/unbound-queue.h",
497     "src/unicode-inl.h",
498     "src/unicode.cc",
499     "src/unicode.h",
500     "src/unique.h",
501     "src/uri.h",
502     "src/utils-inl.h",
503     "src/utils.cc",
504     "src/utils.h",
505     "src/utils/random-number-generator.cc",
506     "src/utils/random-number-generator.h",
507     "src/v8-counters.cc",
508     "src/v8-counters.h",
509     "src/v8.cc",
510     "src/v8.h",
511     "src/v8checks.h",
512     "src/v8globals.h",
513     "src/v8memory.h",
514     "src/v8threads.cc",
515     "src/v8threads.h",
516     "src/variables.cc",
517     "src/variables.h",
518     "src/version.cc",
519     "src/version.h",
520     "src/vm-state-inl.h",
521     "src/vm-state.h",
522     "src/zone-inl.h",
523     "src/zone.cc",
524     "src/zone.h",
525   ]
526
527   if (cpu_arch == "x86") {
528     # TODO(brettw) the GYP file has
529     #   or v8_target_arch=="mac" or OS=="mac"
530     # which I don't understand.
531     sources += [
532       "src/ia32/assembler-ia32-inl.h",
533       "src/ia32/assembler-ia32.cc",
534       "src/ia32/assembler-ia32.h",
535       "src/ia32/builtins-ia32.cc",
536       "src/ia32/code-stubs-ia32.cc",
537       "src/ia32/code-stubs-ia32.h",
538       "src/ia32/codegen-ia32.cc",
539       "src/ia32/codegen-ia32.h",
540       "src/ia32/cpu-ia32.cc",
541       "src/ia32/debug-ia32.cc",
542       "src/ia32/deoptimizer-ia32.cc",
543       "src/ia32/disasm-ia32.cc",
544       "src/ia32/frames-ia32.cc",
545       "src/ia32/frames-ia32.h",
546       "src/ia32/full-codegen-ia32.cc",
547       "src/ia32/ic-ia32.cc",
548       "src/ia32/lithium-codegen-ia32.cc",
549       "src/ia32/lithium-codegen-ia32.h",
550       "src/ia32/lithium-gap-resolver-ia32.cc",
551       "src/ia32/lithium-gap-resolver-ia32.h",
552       "src/ia32/lithium-ia32.cc",
553       "src/ia32/lithium-ia32.h",
554       "src/ia32/macro-assembler-ia32.cc",
555       "src/ia32/macro-assembler-ia32.h",
556       "src/ia32/regexp-macro-assembler-ia32.cc",
557       "src/ia32/regexp-macro-assembler-ia32.h",
558       "src/ia32/stub-cache-ia32.cc",
559     ]
560   } else if (cpu_arch == "x64") {
561     sources += [
562       "src/x64/assembler-x64-inl.h",
563       "src/x64/assembler-x64.cc",
564       "src/x64/assembler-x64.h",
565       "src/x64/builtins-x64.cc",
566       "src/x64/code-stubs-x64.cc",
567       "src/x64/code-stubs-x64.h",
568       "src/x64/codegen-x64.cc",
569       "src/x64/codegen-x64.h",
570       "src/x64/cpu-x64.cc",
571       "src/x64/debug-x64.cc",
572       "src/x64/deoptimizer-x64.cc",
573       "src/x64/disasm-x64.cc",
574       "src/x64/frames-x64.cc",
575       "src/x64/frames-x64.h",
576       "src/x64/full-codegen-x64.cc",
577       "src/x64/ic-x64.cc",
578       "src/x64/lithium-codegen-x64.cc",
579       "src/x64/lithium-codegen-x64.h",
580       "src/x64/lithium-gap-resolver-x64.cc",
581       "src/x64/lithium-gap-resolver-x64.h",
582       "src/x64/lithium-x64.cc",
583       "src/x64/lithium-x64.h",
584       "src/x64/macro-assembler-x64.cc",
585       "src/x64/macro-assembler-x64.h",
586       "src/x64/regexp-macro-assembler-x64.cc",
587       "src/x64/regexp-macro-assembler-x64.h",
588       "src/x64/stub-cache-x64.cc",
589     ]
590   } else if (cpu_arch == "arm") {
591     sources += [
592       "src/arm/assembler-arm-inl.h",
593       "src/arm/assembler-arm.cc",
594       "src/arm/assembler-arm.h",
595       "src/arm/builtins-arm.cc",
596       "src/arm/code-stubs-arm.cc",
597       "src/arm/code-stubs-arm.h",
598       "src/arm/codegen-arm.cc",
599       "src/arm/codegen-arm.h",
600       "src/arm/constants-arm.h",
601       "src/arm/constants-arm.cc",
602       "src/arm/cpu-arm.cc",
603       "src/arm/debug-arm.cc",
604       "src/arm/deoptimizer-arm.cc",
605       "src/arm/disasm-arm.cc",
606       "src/arm/frames-arm.cc",
607       "src/arm/frames-arm.h",
608       "src/arm/full-codegen-arm.cc",
609       "src/arm/ic-arm.cc",
610       "src/arm/lithium-arm.cc",
611       "src/arm/lithium-arm.h",
612       "src/arm/lithium-codegen-arm.cc",
613       "src/arm/lithium-codegen-arm.h",
614       "src/arm/lithium-gap-resolver-arm.cc",
615       "src/arm/lithium-gap-resolver-arm.h",
616       "src/arm/macro-assembler-arm.cc",
617       "src/arm/macro-assembler-arm.h",
618       "src/arm/regexp-macro-assembler-arm.cc",
619       "src/arm/regexp-macro-assembler-arm.h",
620       "src/arm/simulator-arm.cc",
621       "src/arm/stub-cache-arm.cc",
622     ]
623   } else if (cpu_arch == "arm64") {
624     sources += [
625       "src/arm64/assembler-arm64.cc",
626       "src/arm64/assembler-arm64.h",
627       "src/arm64/assembler-arm64-inl.h",
628       "src/arm64/builtins-arm64.cc",
629       "src/arm64/codegen-arm64.cc",
630       "src/arm64/codegen-arm64.h",
631       "src/arm64/code-stubs-arm64.cc",
632       "src/arm64/code-stubs-arm64.h",
633       "src/arm64/constants-arm64.h",
634       "src/arm64/cpu-arm64.cc",
635       "src/arm64/cpu-arm64.h",
636       "src/arm64/debug-arm64.cc",
637       "src/arm64/decoder-arm64.cc",
638       "src/arm64/decoder-arm64.h",
639       "src/arm64/decoder-arm64-inl.h",
640       "src/arm64/deoptimizer-arm64.cc",
641       "src/arm64/disasm-arm64.cc",
642       "src/arm64/disasm-arm64.h",
643       "src/arm64/frames-arm64.cc",
644       "src/arm64/frames-arm64.h",
645       "src/arm64/full-codegen-arm64.cc",
646       "src/arm64/ic-arm64.cc",
647       "src/arm64/instructions-arm64.cc",
648       "src/arm64/instructions-arm64.h",
649       "src/arm64/instrument-arm64.cc",
650       "src/arm64/instrument-arm64.h",
651       "src/arm64/lithium-arm64.cc",
652       "src/arm64/lithium-arm64.h",
653       "src/arm64/lithium-codegen-arm64.cc",
654       "src/arm64/lithium-codegen-arm64.h",
655       "src/arm64/lithium-gap-resolver-arm64.cc",
656       "src/arm64/lithium-gap-resolver-arm64.h",
657       "src/arm64/macro-assembler-arm64.cc",
658       "src/arm64/macro-assembler-arm64.h",
659       "src/arm64/macro-assembler-arm64-inl.h",
660       "src/arm64/regexp-macro-assembler-arm64.cc",
661       "src/arm64/regexp-macro-assembler-arm64.h",
662       "src/arm64/simulator-arm64.cc",
663       "src/arm64/simulator-arm64.h",
664       "src/arm64/stub-cache-arm64.cc",
665       "src/arm64/utils-arm64.cc",
666       "src/arm64/utils-arm64.h",
667     ]
668   } else if (cpu_arch == "mipsel") {
669     sources += [
670       "src/mips/assembler-mips.cc",
671       "src/mips/assembler-mips.h",
672       "src/mips/assembler-mips-inl.h",
673       "src/mips/builtins-mips.cc",
674       "src/mips/codegen-mips.cc",
675       "src/mips/codegen-mips.h",
676       "src/mips/code-stubs-mips.cc",
677       "src/mips/code-stubs-mips.h",
678       "src/mips/constants-mips.cc",
679       "src/mips/constants-mips.h",
680       "src/mips/cpu-mips.cc",
681       "src/mips/debug-mips.cc",
682       "src/mips/deoptimizer-mips.cc",
683       "src/mips/disasm-mips.cc",
684       "src/mips/frames-mips.cc",
685       "src/mips/frames-mips.h",
686       "src/mips/full-codegen-mips.cc",
687       "src/mips/ic-mips.cc",
688       "src/mips/lithium-codegen-mips.cc",
689       "src/mips/lithium-codegen-mips.h",
690       "src/mips/lithium-gap-resolver-mips.cc",
691       "src/mips/lithium-gap-resolver-mips.h",
692       "src/mips/lithium-mips.cc",
693       "src/mips/lithium-mips.h",
694       "src/mips/macro-assembler-mips.cc",
695       "src/mips/macro-assembler-mips.h",
696       "src/mips/regexp-macro-assembler-mips.cc",
697       "src/mips/regexp-macro-assembler-mips.h",
698       "src/mips/simulator-mips.cc",
699       "src/mips/stub-cache-mips.cc",
700     ]
701   }
702
703   configs += [ ":internal_config" ]
704
705   defines = []
706   deps = []
707
708   if (is_posix) {
709     sources += [
710       "src/platform-posix.cc"
711     ]
712   }
713
714   if (is_linux) {
715     sources += [
716       "src/platform-linux.cc"
717     ]
718
719     # TODO(brettw)
720     # 'conditions': [
721     #  ['v8_compress_startup_data=="bz2"', {
722     #    'libraries': [
723     #      '-lbz2',
724     #    ]
725     #   }],
726     # ],
727
728     libs = [ "rt" ]
729   } else if (is_android) {
730     # TODO(brettw) OS=="android" condition from tools/gyp/v8.gyp
731   } else if (is_mac) {
732     sources += [ "src/platform-macos,cc" ]
733   } else if (is_win) {
734     sources += [
735       "src/platform-win32.cc",
736       "src/win32-math.cc",
737       "src/win32-math.h",
738     ]
739
740     defines += [ "_CRT_RAND_S" ]  # for rand_s()
741
742     libs = [ "winmm.lib", "ws2_32.lib" ]
743   }
744
745
746   if (v8_enable_i18n_support) {
747     deps += [ "//third_party/icu" ]
748     if (is_win) {
749       deps += [ "//third_party/icu:icudata" ]
750     }
751   } else {
752     sources -= [
753       "src/i18n.cc",
754       "src/i18n.h",
755     ]
756   }
757
758   # TODO(brettw) other conditions from v8.gyp
759   # TODO(brettw) icu_use_data_file_flag
760 }
761
762 ###############################################################################
763 # Executables
764 #
765
766 # TODO(jochen): Remove this as soon as toolchain.gypi is integrated.
767 if (build_cpu_arch != cpu_arch) {
768
769 executable("mksnapshot") {
770   sources = [
771   ]
772 }
773
774 } else {
775
776 executable("mksnapshot") {
777   sources = [
778     "src/mksnapshot.cc",
779   ]
780
781   configs += [ ":internal_config" ]
782
783   deps = [
784     ":v8_base",
785     ":v8_nosnapshot",
786   ]
787
788   if (v8_compress_startup_data == "bz2") {
789     libs = [ "bz2" ]
790   }
791 }
792
793 }