1# Copyright 2012 the V8 project authors. All rights reserved.
2# Redistribution and use in source and binary forms, with or without
3# modification, are permitted provided that the following conditions are
4# met:
5#
6#     * Redistributions of source code must retain the above copyright
7#       notice, this list of conditions and the following disclaimer.
8#     * Redistributions in binary form must reproduce the above
9#       copyright notice, this list of conditions and the following
10#       disclaimer in the documentation and/or other materials provided
11#       with the distribution.
12#     * Neither the name of Google Inc. nor the names of its
13#       contributors may be used to endorse or promote products derived
14#       from this software without specific prior written permission.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28{
29  'variables': {
30    'v8_code': 1,
31    'generated_file': '<(SHARED_INTERMEDIATE_DIR)/resources.cc',
32  },
33  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
34  'targets': [
35    {
36      'target_name': 'cctest',
37      'type': 'executable',
38      'dependencies': [
39        'resources',
40        '../../tools/gyp/v8.gyp:v8_libplatform',
41      ],
42      'include_dirs': [
43        '../..',
44      ],
45      'sources': [  ### gcmole(all) ###
46        '<(generated_file)',
47        'compiler/c-signature.h',
48        'compiler/codegen-tester.cc',
49        'compiler/codegen-tester.h',
50        'compiler/function-tester.h',
51        'compiler/graph-builder-tester.cc',
52        'compiler/graph-builder-tester.h',
53        'compiler/graph-tester.h',
54        'compiler/simplified-graph-builder.cc',
55        'compiler/simplified-graph-builder.h',
56        'compiler/test-branch-combine.cc',
57        'compiler/test-changes-lowering.cc',
58        'compiler/test-codegen-deopt.cc',
59        'compiler/test-gap-resolver.cc',
60        'compiler/test-graph-reducer.cc',
61        'compiler/test-instruction.cc',
62        'compiler/test-js-context-specialization.cc',
63        'compiler/test-js-constant-cache.cc',
64        'compiler/test-js-typed-lowering.cc',
65        'compiler/test-linkage.cc',
66        'compiler/test-machine-operator-reducer.cc',
67        'compiler/test-node-algorithm.cc',
68        'compiler/test-node-cache.cc',
69        'compiler/test-node.cc',
70        'compiler/test-operator.cc',
71        'compiler/test-phi-reducer.cc',
72        'compiler/test-pipeline.cc',
73        'compiler/test-representation-change.cc',
74        'compiler/test-run-deopt.cc',
75        'compiler/test-run-inlining.cc',
76        'compiler/test-run-intrinsics.cc',
77        'compiler/test-run-jsbranches.cc',
78        'compiler/test-run-jscalls.cc',
79        'compiler/test-run-jsexceptions.cc',
80        'compiler/test-run-jsops.cc',
81        'compiler/test-run-machops.cc',
82        'compiler/test-run-properties.cc',
83        'compiler/test-run-variables.cc',
84        'compiler/test-schedule.cc',
85        'compiler/test-scheduler.cc',
86        'compiler/test-simplified-lowering.cc',
87        'cctest.cc',
88        'gay-fixed.cc',
89        'gay-precision.cc',
90        'gay-shortest.cc',
91        'print-extension.cc',
92        'profiler-extension.cc',
93        'test-accessors.cc',
94        'test-alloc.cc',
95        'test-api.cc',
96        'test-ast.cc',
97        'test-atomicops.cc',
98        'test-bignum.cc',
99        'test-bignum-dtoa.cc',
100        'test-checks.cc',
101        'test-circular-queue.cc',
102        'test-compiler.cc',
103        'test-constantpool.cc',
104        'test-conversions.cc',
105        'test-cpu-profiler.cc',
106        'test-dataflow.cc',
107        'test-date.cc',
108        'test-debug.cc',
109        'test-declarative-accessors.cc',
110        'test-decls.cc',
111        'test-deoptimization.cc',
112        'test-dictionary.cc',
113        'test-diy-fp.cc',
114        'test-double.cc',
115        'test-dtoa.cc',
116        'test-fast-dtoa.cc',
117        'test-fixed-dtoa.cc',
118        'test-flags.cc',
119        'test-func-name-inference.cc',
120        'test-gc-tracer.cc',
121        'test-global-handles.cc',
122        'test-global-object.cc',
123        'test-hashing.cc',
124        'test-hashmap.cc',
125        'test-heap.cc',
126        'test-heap-profiler.cc',
127        'test-hydrogen-types.cc',
128        'test-list.cc',
129        'test-liveedit.cc',
130        'test-lockers.cc',
131        'test-log.cc',
132        'test-microtask-delivery.cc',
133        'test-mark-compact.cc',
134        'test-mementos.cc',
135        'test-object-observe.cc',
136        'test-ordered-hash-table.cc',
137        'test-ostreams.cc',
138        'test-parsing.cc',
139        'test-platform.cc',
140        'test-profile-generator.cc',
141        'test-random-number-generator.cc',
142        'test-regexp.cc',
143        'test-reloc-info.cc',
144        'test-representation.cc',
145        'test-serialize.cc',
146        'test-spaces.cc',
147        'test-strings.cc',
148        'test-symbols.cc',
149        'test-strtod.cc',
150        'test-thread-termination.cc',
151        'test-threads.cc',
152        'test-types.cc',
153        'test-unbound-queue.cc',
154        'test-unique.cc',
155        'test-unscopables-hidden-prototype.cc',
156        'test-utils.cc',
157        'test-version.cc',
158        'test-weakmaps.cc',
159        'test-weaksets.cc',
160        'test-weaktypedarrays.cc',
161        'trace-extension.cc'
162      ],
163      'conditions': [
164        ['v8_target_arch=="ia32"', {
165          'sources': [  ### gcmole(arch:ia32) ###
166            'test-assembler-ia32.cc',
167            'test-code-stubs.cc',
168            'test-code-stubs-ia32.cc',
169            'test-disasm-ia32.cc',
170            'test-macro-assembler-ia32.cc',
171            'test-log-stack-tracer.cc'
172          ],
173        }],
174        ['v8_target_arch=="x64"', {
175          'sources': [  ### gcmole(arch:x64) ###
176            'test-assembler-x64.cc',
177            'test-code-stubs.cc',
178            'test-code-stubs-x64.cc',
179            'test-disasm-x64.cc',
180            'test-macro-assembler-x64.cc',
181            'test-log-stack-tracer.cc'
182          ],
183        }],
184        ['v8_target_arch=="arm"', {
185          'sources': [  ### gcmole(arch:arm) ###
186            'test-assembler-arm.cc',
187            'test-code-stubs.cc',
188            'test-code-stubs-arm.cc',
189            'test-disasm-arm.cc',
190            'test-macro-assembler-arm.cc'
191          ],
192        }],
193        ['v8_target_arch=="arm64"', {
194          'sources': [  ### gcmole(arch:arm64) ###
195            'test-utils-arm64.cc',
196            'test-assembler-arm64.cc',
197            'test-code-stubs.cc',
198            'test-code-stubs-arm64.cc',
199            'test-disasm-arm64.cc',
200            'test-fuzz-arm64.cc',
201            'test-javascript-arm64.cc',
202            'test-js-arm64-variables.cc'
203          ],
204        }],
205        ['v8_target_arch=="mipsel"', {
206          'sources': [  ### gcmole(arch:mipsel) ###
207            'test-assembler-mips.cc',
208            'test-code-stubs.cc',
209            'test-code-stubs-mips.cc',
210            'test-disasm-mips.cc',
211            'test-macro-assembler-mips.cc'
212          ],
213        }],
214        ['v8_target_arch=="mips64el"', {
215          'sources': [
216            'test-assembler-mips64.cc',
217            'test-code-stubs.cc',
218            'test-code-stubs-mips64.cc',
219            'test-disasm-mips64.cc',
220            'test-macro-assembler-mips64.cc'
221          ],
222        }],
223        ['v8_target_arch=="x87"', {
224          'sources': [  ### gcmole(arch:x87) ###
225            'test-assembler-x87.cc',
226            'test-code-stubs.cc',
227            'test-code-stubs-x87.cc',
228            'test-disasm-x87.cc',
229            'test-macro-assembler-x87.cc',
230            'test-log-stack-tracer.cc'
231          ],
232        }],
233        [ 'OS=="linux" or OS=="qnx"', {
234          'sources': [
235            'test-platform-linux.cc',
236          ],
237        }],
238        [ 'OS=="win"', {
239          'sources': [
240            'test-platform-win32.cc',
241          ],
242          'msvs_settings': {
243            'VCCLCompilerTool': {
244              # MSVS wants this for gay-{precision,shortest}.cc.
245              'AdditionalOptions': ['/bigobj'],
246            },
247          },
248        }],
249        ['component=="shared_library"', {
250          # cctest can't be built against a shared library, so we need to
251          # depend on the underlying static target in that case.
252          'conditions': [
253            ['v8_use_snapshot=="true"', {
254              'dependencies': ['../../tools/gyp/v8.gyp:v8_snapshot'],
255            },
256            {
257              'dependencies': [
258                '../../tools/gyp/v8.gyp:v8_nosnapshot',
259              ],
260            }],
261          ],
262        }, {
263          'dependencies': ['../../tools/gyp/v8.gyp:v8'],
264        }],
265      ],
266    },
267    {
268      'target_name': 'resources',
269      'type': 'none',
270      'variables': {
271        'file_list': [
272           '../../tools/splaytree.js',
273           '../../tools/codemap.js',
274           '../../tools/csvparser.js',
275           '../../tools/consarray.js',
276           '../../tools/profile.js',
277           '../../tools/profile_view.js',
278           '../../tools/logreader.js',
279           'log-eq-of-logging-and-traversal.js',
280        ],
281      },
282      'actions': [
283        {
284          'action_name': 'js2c',
285          'inputs': [
286            '../../tools/js2c.py',
287            '<@(file_list)',
288          ],
289          'outputs': [
290            '<(generated_file)',
291          ],
292          'action': [
293            'python',
294            '../../tools/js2c.py',
295            '<@(_outputs)',
296            'TEST',  # type
297            'off',  # compression
298            '<@(file_list)',
299          ],
300        }
301      ],
302    },
303  ],
304}
305