mips: Fix the build on MIPS by adding the lithium files to the sources.
[profile/ivi/qtjsbackend.git] / src / v8 / v8.pri
1 isEmpty(QT_ARCH) {
2     # We're most likely being parsed in a fromfile() call, in which case the
3     # QMake environment isn't complete. Load qt_config in an attempt to set
4     # the variables we need (QT_ARCH and CONFIG, in particular).
5     load(qt_config)
6 }
7
8 isEmpty(V8_TARGET_ARCH) {
9     # Detect target
10     equals(QT_ARCH, x86_64)|contains(CONFIG, x86_64):V8_TARGET_ARCH = x64
11     else:equals(QT_ARCH, "i386"):                    V8_TARGET_ARCH = ia32
12     else:equals(QT_ARCH, "mips"):                    V8_TARGET_ARCH = mips
13     else:equals(QT_ARCH, "arm"):                     V8_TARGET_ARCH = arm
14     else:equals(QMAKE_HOST.arch, armv7l):            V8_TARGET_ARCH = arm
15     else:equals(QMAKE_HOST.arch, armv5tel):          V8_TARGET_ARCH = arm
16     else:equals(QMAKE_HOST.arch, x86_64):            V8_TARGET_ARCH = x64
17     else:equals(QMAKE_HOST.arch, x86):               V8_TARGET_ARCH = ia32
18     else:equals(QMAKE_HOST.arch, i386):              V8_TARGET_ARCH = ia32
19     else:equals(QMAKE_HOST.arch, i686):              V8_TARGET_ARCH = ia32
20     else:error("Couldn't detect supported v8 architecture ($$QMAKE_HOST.arch/$$QT_ARCH). Currently supported architectures are: x64, x86 and arm")
21 }
22
23 include($$PWD/v8base.pri)
24
25 # In debug-and-release builds, generated sources must not go to the same
26 # directory, or they could clobber each other in highly parallelized builds
27 CONFIG(debug, debug|release):V8_GENERATED_SOURCES_DIR = generated-debug
28 else:                        V8_GENERATED_SOURCES_DIR = generated-release
29
30 # this maybe removed in future
31 DEFINES += ENABLE_DEBUGGER_SUPPORT
32
33 # this is needed by crankshaft ( http://code.google.com/p/v8/issues/detail?id=1271 )
34 DEFINES += ENABLE_VMSTATE_TRACKING ENABLE_LOGGING_AND_PROFILING
35
36 CONFIG(debug, debug|release) {
37     DEFINES += DEBUG V8_ENABLE_CHECKS OBJECT_PRINT ENABLE_DISASSEMBLER
38 } else {
39     DEFINES += NDEBUG
40 }
41
42 V8SRC = $$V8DIR/src
43
44 INCLUDEPATH += \
45     $$V8SRC
46
47 SOURCES += \
48     $$V8SRC/accessors.cc \
49     $$V8SRC/allocation.cc \
50     $$V8SRC/api.cc \
51     $$V8SRC/assembler.cc \
52     $$V8SRC/ast.cc \
53     $$V8SRC/atomicops_internals_x86_gcc.cc \
54     $$V8SRC/bignum.cc \
55     $$V8SRC/bignum-dtoa.cc \
56     $$V8SRC/bootstrapper.cc \
57     $$V8SRC/builtins.cc \
58     $$V8SRC/cached-powers.cc \
59     $$V8SRC/checks.cc \
60     $$V8SRC/circular-queue.cc \
61     $$V8SRC/code-stubs.cc \
62     $$V8SRC/codegen.cc \
63     $$V8SRC/compilation-cache.cc \
64     $$V8SRC/compiler.cc \
65     $$V8SRC/contexts.cc \
66     $$V8SRC/conversions.cc \
67     $$V8SRC/counters.cc \
68     $$V8SRC/cpu-profiler.cc \
69     $$V8SRC/data-flow.cc \
70     $$V8SRC/dateparser.cc \
71     $$V8SRC/debug-agent.cc \
72     $$V8SRC/debug.cc \
73     $$V8SRC/deoptimizer.cc \
74     $$V8SRC/disassembler.cc \
75     $$V8SRC/diy-fp.cc \
76     $$V8SRC/dtoa.cc \
77     $$V8SRC/elements.cc \
78     $$V8SRC/execution.cc \
79     $$V8SRC/factory.cc \
80     $$V8SRC/flags.cc \
81     $$V8SRC/frames.cc \
82     $$V8SRC/full-codegen.cc \
83     $$V8SRC/func-name-inferrer.cc \
84     $$V8SRC/gdb-jit.cc \
85     $$V8SRC/global-handles.cc \
86     $$V8SRC/fast-dtoa.cc \
87     $$V8SRC/fixed-dtoa.cc \
88     $$V8SRC/handles.cc \
89     $$V8SRC/hashmap.cc \
90     $$V8SRC/heap-profiler.cc \
91     $$V8SRC/heap.cc \
92     $$V8SRC/hydrogen.cc \
93     $$V8SRC/hydrogen-instructions.cc \
94     $$V8SRC/ic.cc \
95     $$V8SRC/incremental-marking.cc \
96     $$V8SRC/inspector.cc \
97     $$V8SRC/interpreter-irregexp.cc \
98     $$V8SRC/isolate.cc \
99     $$V8SRC/jsregexp.cc \
100     $$V8SRC/lithium-allocator.cc \
101     $$V8SRC/lithium.cc \
102     $$V8SRC/liveedit.cc \
103     $$V8SRC/liveobjectlist.cc \
104     $$V8SRC/log-utils.cc \
105     $$V8SRC/log.cc \
106     $$V8SRC/mark-compact.cc \
107     $$V8SRC/messages.cc \
108     $$V8SRC/objects.cc \
109     $$V8SRC/objects-printer.cc \
110     $$V8SRC/objects-visiting.cc \
111     $$V8SRC/parser.cc \
112     $$V8SRC/preparser.cc \
113     $$V8SRC/preparse-data.cc \
114     $$V8SRC/profile-generator.cc \
115     $$V8SRC/property.cc \
116     $$V8SRC/regexp-macro-assembler-irregexp.cc \
117     $$V8SRC/regexp-macro-assembler.cc \
118     $$V8SRC/regexp-stack.cc \
119     $$V8SRC/rewriter.cc \
120     $$V8SRC/runtime.cc \
121     $$V8SRC/runtime-profiler.cc \
122     $$V8SRC/safepoint-table.cc \
123     $$V8SRC/scanner.cc \
124     $$V8SRC/scanner-character-streams.cc \
125     $$V8SRC/scopeinfo.cc \
126     $$V8SRC/scopes.cc \
127     $$V8SRC/serialize.cc \
128     $$V8SRC/snapshot-common.cc \
129     $$V8SRC/spaces.cc \
130     $$V8SRC/string-search.cc \
131     $$V8SRC/string-stream.cc \
132     $$V8SRC/strtod.cc \
133     $$V8SRC/stub-cache.cc \
134     $$V8SRC/token.cc \
135     $$V8SRC/type-info.cc \
136     $$V8SRC/unicode.cc \
137     $$V8SRC/utils.cc \
138     $$V8SRC/v8-counters.cc \
139     $$V8SRC/v8.cc \
140     $$V8SRC/v8conversions.cc \
141     $$V8SRC/v8threads.cc \
142     $$V8SRC/v8utils.cc \
143     $$V8SRC/variables.cc \
144     $$V8SRC/version.cc \
145     $$V8SRC/store-buffer.cc \
146     $$V8SRC/zone.cc \
147     $$V8SRC/extensions/gc-extension.cc \
148     $$V8SRC/extensions/externalize-string-extension.cc
149
150 equals(V8_TARGET_ARCH, arm) {
151 DEFINES += V8_TARGET_ARCH_ARM
152 contains(config_test_hardfloat, yes) {
153     DEFINES += USE_EABI_HARDFLOAT=1
154 } else {
155     DEFINES += USE_EABI_HARDFLOAT=0
156 }
157 # Disable VFP3 until we add an option to configure
158 # QTBUG-24760
159 false:DEFINES += CAN_USE_VFP_INSTRUCTIONS
160 SOURCES += \
161     $$V8SRC/arm/builtins-arm.cc \
162     $$V8SRC/arm/code-stubs-arm.cc \
163     $$V8SRC/arm/codegen-arm.cc \
164     $$V8SRC/arm/constants-arm.cc \
165     $$V8SRC/arm/cpu-arm.cc \
166     $$V8SRC/arm/debug-arm.cc \
167     $$V8SRC/arm/deoptimizer-arm.cc \
168     $$V8SRC/arm/disasm-arm.cc \
169     $$V8SRC/arm/frames-arm.cc \
170     $$V8SRC/arm/full-codegen-arm.cc \
171     $$V8SRC/arm/ic-arm.cc \
172     $$V8SRC/arm/lithium-arm.cc \
173     $$V8SRC/arm/lithium-codegen-arm.cc \
174     $$V8SRC/arm/lithium-gap-resolver-arm.cc \
175     $$V8SRC/arm/macro-assembler-arm.cc \
176     $$V8SRC/arm/regexp-macro-assembler-arm.cc \
177     $$V8SRC/arm/stub-cache-arm.cc \
178     $$V8SRC/arm/assembler-arm.cc
179 } else:equals(V8_TARGET_ARCH, ia32) {
180 DEFINES += V8_TARGET_ARCH_IA32
181 SOURCES += \
182     $$V8SRC/ia32/assembler-ia32.cc \
183     $$V8SRC/ia32/builtins-ia32.cc \
184     $$V8SRC/ia32/code-stubs-ia32.cc \
185     $$V8SRC/ia32/codegen-ia32.cc \
186     $$V8SRC/ia32/cpu-ia32.cc \
187     $$V8SRC/ia32/debug-ia32.cc \
188     $$V8SRC/ia32/deoptimizer-ia32.cc \
189     $$V8SRC/ia32/disasm-ia32.cc \
190     $$V8SRC/ia32/frames-ia32.cc \
191     $$V8SRC/ia32/full-codegen-ia32.cc \
192     $$V8SRC/ia32/ic-ia32.cc \
193     $$V8SRC/ia32/lithium-codegen-ia32.cc \
194     $$V8SRC/ia32/lithium-gap-resolver-ia32.cc \
195     $$V8SRC/ia32/lithium-ia32.cc \
196     $$V8SRC/ia32/macro-assembler-ia32.cc \
197     $$V8SRC/ia32/regexp-macro-assembler-ia32.cc \
198     $$V8SRC/ia32/stub-cache-ia32.cc
199 } else:equals(V8_TARGET_ARCH, x64) {
200 # FIXME What about 32-bit Macs?
201 DEFINES += V8_TARGET_ARCH_X64
202 SOURCES += \
203     $$V8SRC/x64/assembler-x64.cc \
204     $$V8SRC/x64/builtins-x64.cc \
205     $$V8SRC/x64/code-stubs-x64.cc \
206     $$V8SRC/x64/codegen-x64.cc \
207     $$V8SRC/x64/cpu-x64.cc \
208     $$V8SRC/x64/debug-x64.cc \
209     $$V8SRC/x64/deoptimizer-x64.cc \
210     $$V8SRC/x64/disasm-x64.cc \
211     $$V8SRC/x64/frames-x64.cc \
212     $$V8SRC/x64/full-codegen-x64.cc \
213     $$V8SRC/x64/ic-x64.cc \
214     $$V8SRC/x64/lithium-codegen-x64.cc \
215     $$V8SRC/x64/lithium-gap-resolver-x64.cc \
216     $$V8SRC/x64/lithium-x64.cc \
217     $$V8SRC/x64/macro-assembler-x64.cc \
218     $$V8SRC/x64/regexp-macro-assembler-x64.cc \
219     $$V8SRC/x64/stub-cache-x64.cc
220 } else:equals(V8_TARGET_ARCH, mips) {
221 DEFINES += V8_TARGET_MIPS
222 SOURCES += \
223     $$V8SRC/mips/assembler-mips.cc \
224     $$V8SRC/mips/builtins-mips.cc \
225     $$V8SRC/mips/codegen-mips.cc \
226     $$V8SRC/mips/code-stubs-mips.cc \
227     $$V8SRC/mips/constants-mips.cc \
228     $$V8SRC/mips/cpu-mips.cc \
229     $$V8SRC/mips/debug-mips.cc \
230     $$V8SRC/mips/deoptimizer-mips.cc \
231     $$V8SRC/mips/disasm-mips.cc \
232     $$V8SRC/mips/frames-mips.cc \
233     $$V8SRC/mips/full-codegen-mips.cc \
234     $$V8SRC/mips/ic-mips.cc \
235     $$V8SRC/mips/lithium-codegen-mips.cc \
236     $$V8SRC/mips/lithium-gap-resolver-mips.cc \
237     $$V8SRC/mips/lithium-mips.cc \
238     $$V8SRC/mips/macro-assembler-mips.cc \
239     $$V8SRC/mips/regexp-macro-assembler-mips.cc \
240     $$V8SRC/mips/simulator-mips.cc \
241     $$V8SRC/mips/stub-cache-mips.cc
242 }
243
244 #os:macos
245 macx {
246 SOURCES += \
247     $$V8SRC/platform-macos.cc \
248     $$V8SRC/platform-posix.cc
249 } else:freebsd-* {
250 SOURCES += \
251     $$V8SRC/platform-freebsd.cc \
252     $$V8SRC/platform-posix.cc
253 LIBS += -lexecinfo
254 } else:unix:!symbian:!qnx{
255 SOURCES += \
256     $$V8SRC/platform-linux.cc \
257     $$V8SRC/platform-posix.cc
258 }
259
260 win32 {
261 SOURCES += \
262     $$V8SRC/platform-win32.cc \
263     $$V8SRC/win32-math.cc
264 LIBS += -lWs2_32 -lWinmm
265 win32-msvc*: QMAKE_CXXFLAGS += -wd4100 -wd 4291 -wd4351 -wd4355 -wd4800
266 win32-msvc*:arch_i386: DEFINES += _USE_32BIT_TIME_T
267 }
268
269 #os:qnx
270 qnx {
271 SOURCES += \
272     $$V8SRC/platform-qnx.cc \
273     $$V8SRC/platform-posix.cc
274 LIBS += -lbacktrace -lsocket
275 }
276
277 #mode:debug
278 CONFIG(debug) {
279     SOURCES += \
280         $$V8SRC/objects-debug.cc \
281         $$V8SRC/prettyprinter.cc \
282         $$V8SRC/regexp-macro-assembler-tracer.cc
283 }
284
285 V8_LIBRARY_FILES = \
286     $$V8SRC/runtime.js \
287     $$V8SRC/v8natives.js \
288     $$V8SRC/array.js \
289     $$V8SRC/string.js \
290     $$V8SRC/uri.js \
291     $$V8SRC/math.js \
292     $$V8SRC/messages.js \
293     $$V8SRC/apinatives.js \
294     $$V8SRC/date.js \
295     $$V8SRC/regexp.js \
296     $$V8SRC/json.js \
297     $$V8SRC/liveedit-debugger.js \
298     $$V8SRC/mirror-debugger.js \
299     $$V8SRC/debug-debugger.js
300
301 V8_EXPERIMENTAL_LIBRARY_FILES = \
302     $$V8SRC/proxy.js \
303
304 v8_js2c.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/libraries.cpp CORE off
305 v8_js2c.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN}
306 v8_js2c.output = $$V8_GENERATED_SOURCES_DIR/libraries.cpp
307 v8_js2c.input = V8_LIBRARY_FILES
308 v8_js2c.variable_out = SOURCES
309 v8_js2c.dependency_type = TYPE_C
310 v8_js2c.depends = $$V8DIR/tools/js2c.py $$V8SRC/macros.py
311 v8_js2c.CONFIG += combine
312 v8_js2c.name = generating[v8] ${QMAKE_FILE_IN}
313 silent:v8_js2c.commands = @echo generating[v8] ${QMAKE_FILE_IN} && $$v8_js2c.commands
314
315 v8_js2c_experimental.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp EXPERIMENTAL off
316 v8_js2c_experimental.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN}
317 v8_js2c_experimental.output = $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp
318 v8_js2c_experimental.input = V8_EXPERIMENTAL_LIBRARY_FILES
319 v8_js2c_experimental.variable_out = SOURCES
320 v8_js2c_experimental.dependency_type = TYPE_C
321 v8_js2c_experimental.depends = $$V8DIR/tools/js2c.py $$V8SRC/macros.py
322 v8_js2c_experimental.CONFIG += combine
323 v8_js2c_experimental.name = generating[v8] ${QMAKE_FILE_IN}
324
325 QMAKE_EXTRA_COMPILERS += v8_js2c v8_js2c_experimental