1 # JavaScriptCore - qmake build info 2 CONFIG += building-libs 3 include($$PWD/../WebKit.pri) 4 include(JavaScriptCore.pri) 5 6 TEMPLATE = lib 7 CONFIG += staticlib 8 # Don't use JavaScriptCore as the target name. qmake would create a JavaScriptCore.vcproj for msvc 9 # which already exists as a directory 10 TARGET = $$JAVASCRIPTCORE_TARGET 11 DESTDIR = $$JAVASCRIPTCORE_DESTDIR 12 QT += core 13 QT -= gui 14 15 CONFIG += depend_includepath 16 17 contains(QT_CONFIG, embedded):CONFIG += embedded 18 19 # WebCore adds these config only when in a standalone build. 20 # qbase.pri takes care of that when in a QTDIR_build 21 # Here we add the config for both cases since we don't include qbase.pri 22 contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols 23 unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions 24 25 CONFIG(QTDIR_build) { 26 # Remove the following 2 lines if you want debug information in JavaScriptCore 27 CONFIG -= separate_debug_info 28 CONFIG += no_debug_info 29 } 30 31 *-g++*:QMAKE_CXXFLAGS_RELEASE -= -O2 32 *-g++*:QMAKE_CXXFLAGS_RELEASE += -O3 33 34 # Rules when JIT enabled (not disabled) 35 !contains(DEFINES, ENABLE_JIT=0) { 36 linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) { 37 QMAKE_CXXFLAGS += -fno-stack-protector 38 QMAKE_CFLAGS += -fno-stack-protector 39 } 40 } 41 42 wince* { 43 SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c 44 } 45 46 include(yarr/yarr.pri) 47 include(wtf/wtf.pri) 48 49 INSTALLDEPS += all 50 51 SOURCES += \ 52 API/JSBase.cpp \ 53 API/JSCallbackConstructor.cpp \ 54 API/JSCallbackFunction.cpp \ 55 API/JSCallbackObject.cpp \ 56 API/JSClassRef.cpp \ 57 API/JSContextRef.cpp \ 58 API/JSObjectRef.cpp \ 59 API/JSStringRef.cpp \ 60 API/JSValueRef.cpp \ 61 API/OpaqueJSString.cpp \ 62 assembler/ARMAssembler.cpp \ 63 assembler/ARMv7Assembler.cpp \ 64 assembler/MacroAssemblerARM.cpp \ 65 assembler/MacroAssemblerSH4.h \ 66 assembler/MacroAssemblerSH4.cpp \ 67 assembler/SH4Assembler.h \ 68 bytecode/CodeBlock.cpp \ 69 bytecode/JumpTable.cpp \ 70 bytecode/Opcode.cpp \ 71 bytecode/SamplingTool.cpp \ 72 bytecode/StructureStubInfo.cpp \ 73 bytecompiler/BytecodeGenerator.cpp \ 74 bytecompiler/NodesCodegen.cpp \ 75 heap/ConservativeRoots.cpp \ 76 heap/HandleHeap.cpp \ 77 heap/HandleStack.cpp \ 78 heap/Heap.cpp \ 79 heap/MachineStackMarker.cpp \ 80 heap/MarkStack.cpp \ 81 heap/MarkStackPosix.cpp \ 82 heap/MarkStackSymbian.cpp \ 83 heap/MarkStackWin.cpp \ 84 heap/MarkedBlock.cpp \ 85 heap/MarkedSpace.cpp \ 86 debugger/DebuggerActivation.cpp \ 87 debugger/DebuggerCallFrame.cpp \ 88 debugger/Debugger.cpp \ 89 dfg/DFGByteCodeParser.cpp \ 90 dfg/DFGGraph.cpp \ 91 dfg/DFGJITCodeGenerator.cpp \ 92 dfg/DFGJITCompiler.cpp \ 93 dfg/DFGNonSpeculativeJIT.cpp \ 94 dfg/DFGOperations.cpp \ 95 dfg/DFGSpeculativeJIT.cpp \ 96 interpreter/CallFrame.cpp \ 97 interpreter/Interpreter.cpp \ 98 interpreter/RegisterFile.cpp \ 99 jit/ExecutableAllocatorFixedVMPool.cpp \ 100 jit/ExecutableAllocator.cpp \ 101 jit/JITArithmetic.cpp \ 102 jit/JITArithmetic32_64.cpp \ 103 jit/JITCall.cpp \ 104 jit/JITCall32_64.cpp \ 105 jit/JIT.cpp \ 106 jit/JITOpcodes.cpp \ 107 jit/JITOpcodes32_64.cpp \ 108 jit/JITPropertyAccess.cpp \ 109 jit/JITPropertyAccess32_64.cpp \ 110 jit/JITStubs.cpp \ 111 jit/ThunkGenerators.cpp \ 112 parser/JSParser.cpp \ 113 parser/Lexer.cpp \ 114 parser/Nodes.cpp \ 115 parser/ParserArena.cpp \ 116 parser/Parser.cpp \ 117 parser/SourceProviderCache.cpp \ 118 profiler/Profile.cpp \ 119 profiler/ProfileGenerator.cpp \ 120 profiler/ProfileNode.cpp \ 121 profiler/Profiler.cpp \ 122 runtime/ArgList.cpp \ 123 runtime/Arguments.cpp \ 124 runtime/ArrayConstructor.cpp \ 125 runtime/ArrayPrototype.cpp \ 126 runtime/BooleanConstructor.cpp \ 127 runtime/BooleanObject.cpp \ 128 runtime/BooleanPrototype.cpp \ 129 runtime/CallData.cpp \ 130 runtime/CommonIdentifiers.cpp \ 131 runtime/Completion.cpp \ 132 runtime/ConstructData.cpp \ 133 runtime/DateConstructor.cpp \ 134 runtime/DateConversion.cpp \ 135 runtime/DateInstance.cpp \ 136 runtime/DatePrototype.cpp \ 137 runtime/ErrorConstructor.cpp \ 138 runtime/Error.cpp \ 139 runtime/ErrorInstance.cpp \ 140 runtime/ErrorPrototype.cpp \ 141 runtime/ExceptionHelpers.cpp \ 142 runtime/Executable.cpp \ 143 runtime/FunctionConstructor.cpp \ 144 runtime/FunctionPrototype.cpp \ 145 runtime/GCActivityCallback.cpp \ 146 runtime/GetterSetter.cpp \ 147 runtime/Identifier.cpp \ 148 runtime/InitializeThreading.cpp \ 149 runtime/InternalFunction.cpp \ 150 runtime/JSActivation.cpp \ 151 runtime/JSAPIValueWrapper.cpp \ 152 runtime/JSArray.cpp \ 153 runtime/JSByteArray.cpp \ 154 runtime/JSCell.cpp \ 155 runtime/JSFunction.cpp \ 156 runtime/JSGlobalData.cpp \ 157 runtime/JSGlobalObject.cpp \ 158 runtime/JSGlobalObjectFunctions.cpp \ 159 runtime/JSLock.cpp \ 160 runtime/JSNotAnObject.cpp \ 161 runtime/JSObject.cpp \ 162 runtime/JSObjectWithGlobalObject.cpp \ 163 runtime/JSONObject.cpp \ 164 runtime/JSPropertyNameIterator.cpp \ 165 runtime/JSStaticScopeObject.cpp \ 166 runtime/JSString.cpp \ 167 runtime/JSValue.cpp \ 168 runtime/JSVariableObject.cpp \ 169 runtime/JSWrapperObject.cpp \ 170 runtime/LiteralParser.cpp \ 171 runtime/Lookup.cpp \ 172 runtime/MathObject.cpp \ 173 runtime/NativeErrorConstructor.cpp \ 174 runtime/NativeErrorPrototype.cpp \ 175 runtime/NumberConstructor.cpp \ 176 runtime/NumberObject.cpp \ 177 runtime/NumberPrototype.cpp \ 178 runtime/ObjectConstructor.cpp \ 179 runtime/ObjectPrototype.cpp \ 180 runtime/Operations.cpp \ 181 runtime/PropertyDescriptor.cpp \ 182 runtime/PropertyNameArray.cpp \ 183 runtime/PropertySlot.cpp \ 184 runtime/RegExpConstructor.cpp \ 185 runtime/RegExp.cpp \ 186 runtime/RegExpObject.cpp \ 187 runtime/RegExpPrototype.cpp \ 188 runtime/RegExpCache.cpp \ 189 runtime/RopeImpl.cpp \ 190 runtime/ScopeChain.cpp \ 191 runtime/SmallStrings.cpp \ 192 runtime/StrictEvalActivation.cpp \ 193 runtime/StringConstructor.cpp \ 194 runtime/StringObject.cpp \ 195 runtime/StringPrototype.cpp \ 196 runtime/StringRecursionChecker.cpp \ 197 runtime/StructureChain.cpp \ 198 runtime/Structure.cpp \ 199 runtime/TimeoutChecker.cpp \ 200 runtime/UString.cpp \ 201 yarr/YarrJIT.cpp \ 202 203 *sh4* { 204 QMAKE_CXXFLAGS += -mieee -w 205 QMAKE_CFLAGS += -mieee -w 206 } 207 208 # Generated files, simply list them for JavaScriptCore 209 210 symbian: { 211 symbian-abld|symbian-sbsv2 { 212 MMP_RULES += ALWAYS_BUILD_AS_ARM 213 } else { 214 QMAKE_CFLAGS -= --thumb 215 QMAKE_CXXFLAGS -= --thumb 216 } 217 QMAKE_CXXFLAGS.ARMCC += -OTime -O3 218 } 219 220 # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec 221 *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x 222 223