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).
8 isEmpty(V8_TARGET_ARCH) {
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")
23 include($$PWD/v8base.pri)
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
30 # this maybe removed in future
31 DEFINES += ENABLE_DEBUGGER_SUPPORT
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
36 CONFIG(debug, debug|release) {
37 DEFINES += DEBUG V8_ENABLE_CHECKS OBJECT_PRINT ENABLE_DISASSEMBLER
48 $$V8SRC/accessors.cc \
49 $$V8SRC/allocation.cc \
51 $$V8SRC/assembler.cc \
53 $$V8SRC/atomicops_internals_x86_gcc.cc \
55 $$V8SRC/bignum-dtoa.cc \
56 $$V8SRC/bootstrapper.cc \
58 $$V8SRC/cached-powers.cc \
60 $$V8SRC/circular-queue.cc \
61 $$V8SRC/code-stubs.cc \
63 $$V8SRC/compilation-cache.cc \
66 $$V8SRC/conversions.cc \
68 $$V8SRC/cpu-profiler.cc \
69 $$V8SRC/data-flow.cc \
71 $$V8SRC/dateparser.cc \
72 $$V8SRC/debug-agent.cc \
74 $$V8SRC/deoptimizer.cc \
75 $$V8SRC/disassembler.cc \
79 $$V8SRC/execution.cc \
83 $$V8SRC/full-codegen.cc \
84 $$V8SRC/func-name-inferrer.cc \
86 $$V8SRC/global-handles.cc \
87 $$V8SRC/fast-dtoa.cc \
88 $$V8SRC/fixed-dtoa.cc \
90 $$V8SRC/heap-profiler.cc \
93 $$V8SRC/hydrogen-instructions.cc \
95 $$V8SRC/incremental-marking.cc \
96 $$V8SRC/inspector.cc \
97 $$V8SRC/interface.cc \
98 $$V8SRC/interpreter-irregexp.cc \
100 $$V8SRC/jsregexp.cc \
101 $$V8SRC/lithium-allocator.cc \
103 $$V8SRC/liveedit.cc \
104 $$V8SRC/liveobjectlist.cc \
105 $$V8SRC/log-utils.cc \
107 $$V8SRC/mark-compact.cc \
108 $$V8SRC/messages.cc \
110 $$V8SRC/objects-printer.cc \
111 $$V8SRC/objects-visiting.cc \
114 $$V8SRC/preparser.cc \
115 $$V8SRC/preparse-data.cc \
116 $$V8SRC/profile-generator.cc \
117 $$V8SRC/property.cc \
118 $$V8SRC/regexp-macro-assembler-irregexp.cc \
119 $$V8SRC/regexp-macro-assembler.cc \
120 $$V8SRC/regexp-stack.cc \
121 $$V8SRC/rewriter.cc \
123 $$V8SRC/runtime-profiler.cc \
124 $$V8SRC/safepoint-table.cc \
126 $$V8SRC/scanner-character-streams.cc \
127 $$V8SRC/scopeinfo.cc \
129 $$V8SRC/serialize.cc \
130 $$V8SRC/snapshot-common.cc \
132 $$V8SRC/string-search.cc \
133 $$V8SRC/string-stream.cc \
135 $$V8SRC/stub-cache.cc \
137 $$V8SRC/type-info.cc \
140 $$V8SRC/v8-counters.cc \
142 $$V8SRC/v8conversions.cc \
143 $$V8SRC/v8threads.cc \
145 $$V8SRC/variables.cc \
147 $$V8SRC/store-buffer.cc \
149 $$V8SRC/extensions/gc-extension.cc \
150 $$V8SRC/extensions/externalize-string-extension.cc
152 equals(V8_TARGET_ARCH, arm) {
153 DEFINES += V8_TARGET_ARCH_ARM
154 contains(config_test_hardfloat, yes) {
155 DEFINES += USE_EABI_HARDFLOAT=1
157 DEFINES += USE_EABI_HARDFLOAT=0
159 # Disable VFP3 until we add an option to configure
161 false:DEFINES += CAN_USE_VFP_INSTRUCTIONS
163 $$V8SRC/arm/builtins-arm.cc \
164 $$V8SRC/arm/code-stubs-arm.cc \
165 $$V8SRC/arm/codegen-arm.cc \
166 $$V8SRC/arm/constants-arm.cc \
167 $$V8SRC/arm/cpu-arm.cc \
168 $$V8SRC/arm/debug-arm.cc \
169 $$V8SRC/arm/deoptimizer-arm.cc \
170 $$V8SRC/arm/disasm-arm.cc \
171 $$V8SRC/arm/frames-arm.cc \
172 $$V8SRC/arm/full-codegen-arm.cc \
173 $$V8SRC/arm/ic-arm.cc \
174 $$V8SRC/arm/lithium-arm.cc \
175 $$V8SRC/arm/lithium-codegen-arm.cc \
176 $$V8SRC/arm/lithium-gap-resolver-arm.cc \
177 $$V8SRC/arm/macro-assembler-arm.cc \
178 $$V8SRC/arm/regexp-macro-assembler-arm.cc \
179 $$V8SRC/arm/stub-cache-arm.cc \
180 $$V8SRC/arm/assembler-arm.cc
181 } else:equals(V8_TARGET_ARCH, ia32) {
182 DEFINES += V8_TARGET_ARCH_IA32
184 $$V8SRC/ia32/assembler-ia32.cc \
185 $$V8SRC/ia32/builtins-ia32.cc \
186 $$V8SRC/ia32/code-stubs-ia32.cc \
187 $$V8SRC/ia32/codegen-ia32.cc \
188 $$V8SRC/ia32/cpu-ia32.cc \
189 $$V8SRC/ia32/debug-ia32.cc \
190 $$V8SRC/ia32/deoptimizer-ia32.cc \
191 $$V8SRC/ia32/disasm-ia32.cc \
192 $$V8SRC/ia32/frames-ia32.cc \
193 $$V8SRC/ia32/full-codegen-ia32.cc \
194 $$V8SRC/ia32/ic-ia32.cc \
195 $$V8SRC/ia32/lithium-codegen-ia32.cc \
196 $$V8SRC/ia32/lithium-gap-resolver-ia32.cc \
197 $$V8SRC/ia32/lithium-ia32.cc \
198 $$V8SRC/ia32/macro-assembler-ia32.cc \
199 $$V8SRC/ia32/regexp-macro-assembler-ia32.cc \
200 $$V8SRC/ia32/stub-cache-ia32.cc
201 } else:equals(V8_TARGET_ARCH, x64) {
202 # FIXME What about 32-bit Macs?
203 DEFINES += V8_TARGET_ARCH_X64
205 $$V8SRC/x64/assembler-x64.cc \
206 $$V8SRC/x64/builtins-x64.cc \
207 $$V8SRC/x64/code-stubs-x64.cc \
208 $$V8SRC/x64/codegen-x64.cc \
209 $$V8SRC/x64/cpu-x64.cc \
210 $$V8SRC/x64/debug-x64.cc \
211 $$V8SRC/x64/deoptimizer-x64.cc \
212 $$V8SRC/x64/disasm-x64.cc \
213 $$V8SRC/x64/frames-x64.cc \
214 $$V8SRC/x64/full-codegen-x64.cc \
215 $$V8SRC/x64/ic-x64.cc \
216 $$V8SRC/x64/lithium-codegen-x64.cc \
217 $$V8SRC/x64/lithium-gap-resolver-x64.cc \
218 $$V8SRC/x64/lithium-x64.cc \
219 $$V8SRC/x64/macro-assembler-x64.cc \
220 $$V8SRC/x64/regexp-macro-assembler-x64.cc \
221 $$V8SRC/x64/stub-cache-x64.cc
222 } else:equals(V8_TARGET_ARCH, mips) {
223 DEFINES += V8_TARGET_MIPS
225 $$V8SRC/mips/assembler-mips.cc \
226 $$V8SRC/mips/builtins-mips.cc \
227 $$V8SRC/mips/codegen-mips.cc \
228 $$V8SRC/mips/code-stubs-mips.cc \
229 $$V8SRC/mips/constants-mips.cc \
230 $$V8SRC/mips/cpu-mips.cc \
231 $$V8SRC/mips/debug-mips.cc \
232 $$V8SRC/mips/deoptimizer-mips.cc \
233 $$V8SRC/mips/disasm-mips.cc \
234 $$V8SRC/mips/frames-mips.cc \
235 $$V8SRC/mips/full-codegen-mips.cc \
236 $$V8SRC/mips/ic-mips.cc \
237 $$V8SRC/mips/lithium-codegen-mips.cc \
238 $$V8SRC/mips/lithium-gap-resolver-mips.cc \
239 $$V8SRC/mips/lithium-mips.cc \
240 $$V8SRC/mips/macro-assembler-mips.cc \
241 $$V8SRC/mips/regexp-macro-assembler-mips.cc \
242 $$V8SRC/mips/simulator-mips.cc \
243 $$V8SRC/mips/stub-cache-mips.cc
249 $$V8SRC/platform-macos.cc \
250 $$V8SRC/platform-posix.cc
253 $$V8SRC/platform-freebsd.cc \
254 $$V8SRC/platform-posix.cc
256 } else:unix:!symbian:!qnx{
258 $$V8SRC/platform-linux.cc \
259 $$V8SRC/platform-posix.cc
264 $$V8SRC/platform-win32.cc \
265 $$V8SRC/win32-math.cc
266 LIBS += -lWs2_32 -lWinmm
267 win32-msvc*: QMAKE_CXXFLAGS += -wd4100 -wd 4291 -wd4351 -wd4355 -wd4800
268 win32-msvc*:arch_i386: DEFINES += _USE_32BIT_TIME_T
274 $$V8SRC/platform-qnx.cc \
275 $$V8SRC/platform-posix.cc
276 LIBS += -lbacktrace -lsocket
282 $$V8SRC/objects-debug.cc \
283 $$V8SRC/prettyprinter.cc \
284 $$V8SRC/regexp-macro-assembler-tracer.cc
289 $$V8SRC/v8natives.js \
294 $$V8SRC/messages.js \
295 $$V8SRC/apinatives.js \
299 $$V8SRC/liveedit-debugger.js \
300 $$V8SRC/mirror-debugger.js \
301 $$V8SRC/debug-debugger.js
303 V8_EXPERIMENTAL_LIBRARY_FILES = \
306 v8_js2c.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/libraries.cpp CORE off
307 v8_js2c.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN}
308 v8_js2c.output = $$V8_GENERATED_SOURCES_DIR/libraries.cpp
309 v8_js2c.input = V8_LIBRARY_FILES
310 v8_js2c.variable_out = SOURCES
311 v8_js2c.dependency_type = TYPE_C
312 v8_js2c.depends = $$V8DIR/tools/js2c.py $$V8SRC/macros.py
313 v8_js2c.CONFIG += combine
314 v8_js2c.name = generating[v8] ${QMAKE_FILE_IN}
315 silent:v8_js2c.commands = @echo generating[v8] ${QMAKE_FILE_IN} && $$v8_js2c.commands
317 v8_js2c_experimental.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp EXPERIMENTAL off
318 v8_js2c_experimental.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN}
319 v8_js2c_experimental.output = $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp
320 v8_js2c_experimental.input = V8_EXPERIMENTAL_LIBRARY_FILES
321 v8_js2c_experimental.variable_out = SOURCES
322 v8_js2c_experimental.dependency_type = TYPE_C
323 v8_js2c_experimental.depends = $$V8DIR/tools/js2c.py $$V8SRC/macros.py
324 v8_js2c_experimental.CONFIG += combine
325 v8_js2c_experimental.name = generating[v8] ${QMAKE_FILE_IN}
327 QMAKE_EXTRA_COMPILERS += v8_js2c v8_js2c_experimental