Target.pri 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. # -------------------------------------------------------------------
  2. # Target file for the JavaScriptSource library
  3. #
  4. # See 'Tools/qmake/README' for an overview of the build system
  5. # -------------------------------------------------------------------
  6. TEMPLATE = lib
  7. TARGET = JavaScriptCore
  8. include(JavaScriptCore.pri)
  9. WEBKIT += wtf
  10. QT += core
  11. QT -= gui
  12. CONFIG += staticlib
  13. *-g++*:QMAKE_CXXFLAGS_RELEASE -= -O2
  14. *-g++*:QMAKE_CXXFLAGS_RELEASE += -O3
  15. # Rules when JIT enabled (not disabled)
  16. !contains(DEFINES, ENABLE_JIT=0) {
  17. linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
  18. QMAKE_CXXFLAGS += -fno-stack-protector
  19. QMAKE_CFLAGS += -fno-stack-protector
  20. }
  21. }
  22. include(yarr/yarr.pri)
  23. INSTALLDEPS += all
  24. debug_and_release: INCLUDEPATH += $$JAVASCRIPTCORE_GENERATED_SOURCES_DIR/$$targetSubDir()
  25. SOURCES += \
  26. API/JSBase.cpp \
  27. API/JSCallbackConstructor.cpp \
  28. API/JSCallbackFunction.cpp \
  29. API/JSCallbackObject.cpp \
  30. API/JSClassRef.cpp \
  31. API/JSContextRef.cpp \
  32. API/JSObjectRef.cpp \
  33. API/JSScriptRef.cpp \
  34. API/JSStringRef.cpp \
  35. API/JSStringRefQt.cpp \
  36. API/JSValueRef.cpp \
  37. API/JSWeakObjectMapRefPrivate.cpp \
  38. API/OpaqueJSString.cpp \
  39. assembler/ARMAssembler.cpp \
  40. assembler/ARMv7Assembler.cpp \
  41. assembler/LinkBuffer.cpp \
  42. assembler/MacroAssembler.cpp \
  43. assembler/MacroAssemblerARM.cpp \
  44. bytecode/ArrayAllocationProfile.cpp \
  45. bytecode/ArrayProfile.cpp \
  46. bytecode/CallLinkInfo.cpp \
  47. bytecode/CallLinkStatus.cpp \
  48. bytecode/CodeBlock.cpp \
  49. bytecode/CodeBlockHash.cpp \
  50. bytecode/CodeOrigin.cpp \
  51. bytecode/CodeType.cpp \
  52. bytecode/DFGExitProfile.cpp \
  53. bytecode/ExecutionCounter.cpp \
  54. bytecode/ExitKind.cpp \
  55. bytecode/GetByIdStatus.cpp \
  56. bytecode/JumpTable.cpp \
  57. bytecode/LazyOperandValueProfile.cpp \
  58. bytecode/MethodOfGettingAValueProfile.cpp \
  59. bytecode/Opcode.cpp \
  60. bytecode/PolymorphicPutByIdList.cpp \
  61. bytecode/PreciseJumpTargets.cpp \
  62. bytecode/PutByIdStatus.cpp \
  63. bytecode/ReduceWhitespace.cpp \
  64. bytecode/ResolveGlobalStatus.cpp \
  65. bytecode/SamplingTool.cpp \
  66. bytecode/SpecialPointer.cpp \
  67. bytecode/SpeculatedType.cpp \
  68. bytecode/StructureStubClearingWatchpoint.cpp \
  69. bytecode/StructureStubInfo.cpp \
  70. bytecode/UnlinkedCodeBlock.cpp \
  71. bytecode/Watchpoint.cpp \
  72. bytecompiler/BytecodeGenerator.cpp \
  73. bytecompiler/NodesCodegen.cpp \
  74. heap/CopiedSpace.cpp \
  75. heap/CopyVisitor.cpp \
  76. heap/ConservativeRoots.cpp \
  77. heap/DFGCodeBlocks.cpp \
  78. heap/Weak.cpp \
  79. heap/WeakBlock.cpp \
  80. heap/WeakHandleOwner.cpp \
  81. heap/WeakSet.cpp \
  82. heap/HandleSet.cpp \
  83. heap/HandleStack.cpp \
  84. heap/BlockAllocator.cpp \
  85. heap/GCThreadSharedData.cpp \
  86. heap/GCThread.cpp \
  87. heap/Heap.cpp \
  88. heap/HeapStatistics.cpp \
  89. heap/HeapTimer.cpp \
  90. heap/IncrementalSweeper.cpp \
  91. heap/JITStubRoutineSet.cpp \
  92. heap/MachineStackMarker.cpp \
  93. heap/MarkStack.cpp \
  94. heap/MarkedAllocator.cpp \
  95. heap/MarkedBlock.cpp \
  96. heap/MarkedSpace.cpp \
  97. heap/SlotVisitor.cpp \
  98. heap/SuperRegion.cpp \
  99. heap/VTableSpectrum.cpp \
  100. heap/WriteBarrierSupport.cpp \
  101. debugger/DebuggerActivation.cpp \
  102. debugger/DebuggerCallFrame.cpp \
  103. debugger/Debugger.cpp \
  104. dfg/DFGAbstractState.cpp \
  105. dfg/DFGArgumentsSimplificationPhase.cpp \
  106. dfg/DFGArrayMode.cpp \
  107. dfg/DFGAssemblyHelpers.cpp \
  108. dfg/DFGBackwardsPropagationPhase.cpp \
  109. dfg/DFGByteCodeParser.cpp \
  110. dfg/DFGCapabilities.cpp \
  111. dfg/DFGCommon.cpp \
  112. dfg/DFGCFAPhase.cpp \
  113. dfg/DFGCFGSimplificationPhase.cpp \
  114. dfg/DFGCPSRethreadingPhase.cpp \
  115. dfg/DFGConstantFoldingPhase.cpp \
  116. dfg/DFGCSEPhase.cpp \
  117. dfg/DFGDCEPhase.cpp \
  118. dfg/DFGDisassembler.cpp \
  119. dfg/DFGDominators.cpp \
  120. dfg/DFGDriver.cpp \
  121. dfg/DFGEdge.cpp \
  122. dfg/DFGFixupPhase.cpp \
  123. dfg/DFGGraph.cpp \
  124. dfg/DFGJITCompiler.cpp \
  125. dfg/DFGLongLivedState.cpp \
  126. dfg/DFGMinifiedNode.cpp \
  127. dfg/DFGNode.cpp \
  128. dfg/DFGNodeFlags.cpp \
  129. dfg/DFGOperations.cpp \
  130. dfg/DFGOSREntry.cpp \
  131. dfg/DFGOSRExit.cpp \
  132. dfg/DFGOSRExitCompiler.cpp \
  133. dfg/DFGOSRExitCompiler64.cpp \
  134. dfg/DFGOSRExitCompiler32_64.cpp \
  135. dfg/DFGOSRExitJumpPlaceholder.cpp \
  136. dfg/DFGPhase.cpp \
  137. dfg/DFGPredictionPropagationPhase.cpp \
  138. dfg/DFGPredictionInjectionPhase.cpp \
  139. dfg/DFGRepatch.cpp \
  140. dfg/DFGSpeculativeJIT.cpp \
  141. dfg/DFGSpeculativeJIT32_64.cpp \
  142. dfg/DFGSpeculativeJIT64.cpp \
  143. dfg/DFGTypeCheckHoistingPhase.cpp \
  144. dfg/DFGThunks.cpp \
  145. dfg/DFGUnificationPhase.cpp \
  146. dfg/DFGUseKind.cpp \
  147. dfg/DFGValueSource.cpp \
  148. dfg/DFGVariableAccessDataDump.cpp \
  149. dfg/DFGVariableEvent.cpp \
  150. dfg/DFGVariableEventStream.cpp \
  151. dfg/DFGValidate.cpp \
  152. dfg/DFGVirtualRegisterAllocationPhase.cpp \
  153. disassembler/Disassembler.cpp \
  154. interpreter/AbstractPC.cpp \
  155. interpreter/CallFrame.cpp \
  156. interpreter/Interpreter.cpp \
  157. interpreter/JSStack.cpp \
  158. jit/ClosureCallStubRoutine.cpp \
  159. jit/ExecutableAllocatorFixedVMPool.cpp \
  160. jit/ExecutableAllocator.cpp \
  161. jit/HostCallReturnValue.cpp \
  162. jit/GCAwareJITStubRoutine.cpp \
  163. jit/JITArithmetic.cpp \
  164. jit/JITArithmetic32_64.cpp \
  165. jit/JITCall.cpp \
  166. jit/JITCall32_64.cpp \
  167. jit/JITCode.cpp \
  168. jit/JIT.cpp \
  169. jit/JITDisassembler.cpp \
  170. jit/JITExceptions.cpp \
  171. jit/JITOpcodes.cpp \
  172. jit/JITOpcodes32_64.cpp \
  173. jit/JITPropertyAccess.cpp \
  174. jit/JITPropertyAccess32_64.cpp \
  175. jit/JITStubRoutine.cpp \
  176. jit/JITStubs.cpp \
  177. jit/JITThunks.cpp \
  178. jit/JumpReplacementWatchpoint.cpp \
  179. jit/ThunkGenerators.cpp \
  180. llint/LLIntCLoop.cpp \
  181. llint/LLIntData.cpp \
  182. llint/LLIntEntrypoints.cpp \
  183. llint/LLIntExceptions.cpp \
  184. llint/LLIntSlowPaths.cpp \
  185. llint/LLIntThunks.cpp \
  186. llint/LowLevelInterpreter.cpp \
  187. parser/Lexer.cpp \
  188. parser/Nodes.cpp \
  189. parser/ParserArena.cpp \
  190. parser/Parser.cpp \
  191. parser/SourceProvider.cpp \
  192. parser/SourceProviderCache.cpp \
  193. profiler/ProfilerBytecode.cpp \
  194. profiler/ProfilerBytecode.h \
  195. profiler/ProfilerBytecodeSequence.cpp \
  196. profiler/ProfilerBytecodes.cpp \
  197. profiler/ProfilerBytecodes.h \
  198. profiler/ProfilerCompilation.cpp \
  199. profiler/ProfilerCompilation.h \
  200. profiler/ProfilerCompilationKind.cpp \
  201. profiler/ProfilerCompilationKind.h \
  202. profiler/ProfilerCompiledBytecode.cpp \
  203. profiler/ProfilerCompiledBytecode.h \
  204. profiler/ProfilerDatabase.cpp \
  205. profiler/ProfilerDatabase.h \
  206. profiler/ProfilerExecutionCounter.h \
  207. profiler/ProfilerOrigin.cpp \
  208. profiler/ProfilerOrigin.h \
  209. profiler/ProfilerOriginStack.cpp \
  210. profiler/ProfilerOriginStack.h \
  211. profiler/ProfilerOSRExit.cpp \
  212. profiler/ProfilerOSRExitSite.cpp \
  213. profiler/ProfilerProfiledBytecodes.cpp \
  214. profiler/Profile.cpp \
  215. profiler/ProfileGenerator.cpp \
  216. profiler/ProfileNode.cpp \
  217. profiler/LegacyProfiler.cpp \
  218. runtime/ArgList.cpp \
  219. runtime/Arguments.cpp \
  220. runtime/ArrayConstructor.cpp \
  221. runtime/ArrayPrototype.cpp \
  222. runtime/BooleanConstructor.cpp \
  223. runtime/BooleanObject.cpp \
  224. runtime/BooleanPrototype.cpp \
  225. runtime/CallData.cpp \
  226. runtime/CodeCache.cpp \
  227. runtime/CodeSpecializationKind.cpp \
  228. runtime/CommonIdentifiers.cpp \
  229. runtime/Completion.cpp \
  230. runtime/ConstructData.cpp \
  231. runtime/DateConstructor.cpp \
  232. runtime/DateConversion.cpp \
  233. runtime/DateInstance.cpp \
  234. runtime/DatePrototype.cpp \
  235. runtime/ErrorConstructor.cpp \
  236. runtime/Error.cpp \
  237. runtime/ErrorInstance.cpp \
  238. runtime/ErrorPrototype.cpp \
  239. runtime/ExceptionHelpers.cpp \
  240. runtime/Executable.cpp \
  241. runtime/FunctionConstructor.cpp \
  242. runtime/FunctionExecutableDump.cpp \
  243. runtime/FunctionPrototype.cpp \
  244. runtime/GCActivityCallback.cpp \
  245. runtime/GetterSetter.cpp \
  246. runtime/Options.cpp \
  247. runtime/Identifier.cpp \
  248. runtime/IndexingType.cpp \
  249. runtime/InitializeThreading.cpp \
  250. runtime/InternalFunction.cpp \
  251. runtime/JSActivation.cpp \
  252. runtime/JSAPIValueWrapper.cpp \
  253. runtime/JSArray.cpp \
  254. runtime/JSCell.cpp \
  255. runtime/JSDateMath.cpp \
  256. runtime/JSFunction.cpp \
  257. runtime/JSBoundFunction.cpp \
  258. runtime/VM.cpp \
  259. runtime/JSGlobalObject.cpp \
  260. runtime/JSGlobalObjectFunctions.cpp \
  261. runtime/JSProxy.cpp \
  262. runtime/JSLock.cpp \
  263. runtime/JSNotAnObject.cpp \
  264. runtime/JSObject.cpp \
  265. runtime/JSONObject.cpp \
  266. runtime/JSPropertyNameIterator.cpp \
  267. runtime/JSSegmentedVariableObject.cpp \
  268. runtime/JSWithScope.cpp \
  269. runtime/JSNameScope.cpp \
  270. runtime/JSScope.cpp \
  271. runtime/JSString.cpp \
  272. runtime/JSStringJoiner.cpp \
  273. runtime/JSSymbolTableObject.cpp \
  274. runtime/JSCJSValue.cpp \
  275. runtime/JSVariableObject.cpp \
  276. runtime/JSWrapperObject.cpp \
  277. runtime/LiteralParser.cpp \
  278. runtime/Lookup.cpp \
  279. runtime/MathObject.cpp \
  280. runtime/MemoryStatistics.cpp \
  281. runtime/NameConstructor.cpp \
  282. runtime/NameInstance.cpp \
  283. runtime/NamePrototype.cpp \
  284. runtime/NativeErrorConstructor.cpp \
  285. runtime/NativeErrorPrototype.cpp \
  286. runtime/NumberConstructor.cpp \
  287. runtime/NumberObject.cpp \
  288. runtime/NumberPrototype.cpp \
  289. runtime/ObjectConstructor.cpp \
  290. runtime/ObjectPrototype.cpp \
  291. runtime/Operations.cpp \
  292. runtime/PropertyDescriptor.cpp \
  293. runtime/PropertyNameArray.cpp \
  294. runtime/PropertySlot.cpp \
  295. runtime/PropertyTable.cpp \
  296. runtime/PrototypeMap.cpp \
  297. runtime/RegExpConstructor.cpp \
  298. runtime/RegExpCachedResult.cpp \
  299. runtime/RegExpMatchesArray.cpp \
  300. runtime/RegExp.cpp \
  301. runtime/RegExpObject.cpp \
  302. runtime/RegExpPrototype.cpp \
  303. runtime/RegExpCache.cpp \
  304. runtime/SamplingCounter.cpp \
  305. runtime/SmallStrings.cpp \
  306. runtime/SparseArrayValueMap.cpp \
  307. runtime/StrictEvalActivation.cpp \
  308. runtime/StringConstructor.cpp \
  309. runtime/StringObject.cpp \
  310. runtime/StringPrototype.cpp \
  311. runtime/StringRecursionChecker.cpp \
  312. runtime/StructureChain.cpp \
  313. runtime/Structure.cpp \
  314. runtime/StructureRareData.cpp \
  315. runtime/SymbolTable.cpp \
  316. runtime/Watchdog.cpp \
  317. runtime/WatchdogNone.cpp \
  318. tools/CodeProfile.cpp \
  319. tools/CodeProfiling.cpp \
  320. yarr/YarrJIT.cpp \
  321. linux-*:if(isEqual(QT_ARCH, "i386")|isEqual(QT_ARCH, "x86_64")) {
  322. SOURCES += \
  323. disassembler/UDis86Disassembler.cpp \
  324. disassembler/udis86/udis86.c \
  325. disassembler/udis86/udis86_decode.c \
  326. disassembler/udis86/udis86_input.c \
  327. disassembler/udis86/udis86_itab_holder.c \
  328. disassembler/udis86/udis86_syn-att.c \
  329. disassembler/udis86/udis86_syn-intel.c \
  330. disassembler/udis86/udis86_syn.c \
  331. }
  332. win32:!win32-g++*:isEqual(QT_ARCH, "x86_64"):{
  333. asm_compiler.commands = ml64 /c
  334. asm_compiler.commands += /Fo ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
  335. asm_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
  336. asm_compiler.input = ASM_SOURCES
  337. asm_compiler.variable_out = OBJECTS
  338. asm_compiler.name = compiling[asm] ${QMAKE_FILE_IN}
  339. silent:asm_compiler.commands = @echo compiling[asm] ${QMAKE_FILE_IN} && $$asm_compiler.commands
  340. QMAKE_EXTRA_COMPILERS += asm_compiler
  341. ASM_SOURCES += jit/JITStubsMSVC64.asm
  342. }
  343. HEADERS += $$files(*.h, true)
  344. *sh4* {
  345. QMAKE_CXXFLAGS += -mieee -w
  346. QMAKE_CFLAGS += -mieee -w
  347. }
  348. lessThan(QT_GCC_MAJOR_VERSION, 5) {
  349. # GCC 4.5 and before
  350. lessThan(QT_GCC_MINOR_VERSION, 6) {
  351. # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec.
  352. *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
  353. }
  354. }