1 SET(JavaScriptCore_INCLUDE_DIRECTORIES
3 "${JAVASCRIPTCORE_DIR}"
4 "${JAVASCRIPTCORE_DIR}/API"
5 "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
6 "${JAVASCRIPTCORE_DIR}/assembler"
7 "${JAVASCRIPTCORE_DIR}/bytecode"
8 "${JAVASCRIPTCORE_DIR}/bytecompiler"
9 "${JAVASCRIPTCORE_DIR}/dfg"
10 "${JAVASCRIPTCORE_DIR}/heap"
11 "${JAVASCRIPTCORE_DIR}/debugger"
12 "${JAVASCRIPTCORE_DIR}/interpreter"
13 "${JAVASCRIPTCORE_DIR}/jit"
14 "${JAVASCRIPTCORE_DIR}/llint"
15 "${JAVASCRIPTCORE_DIR}/parser"
16 "${JAVASCRIPTCORE_DIR}/profiler"
17 "${JAVASCRIPTCORE_DIR}/runtime"
18 "${JAVASCRIPTCORE_DIR}/tools"
19 "${JAVASCRIPTCORE_DIR}/yarr"
20 "${JAVASCRIPTCORE_DIR}/wtf"
21 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
22 "${CMAKE_SOURCE_DIR}/Source"
25 SET(JavaScriptCore_SOURCES
27 API/JSCallbackConstructor.cpp
28 API/JSCallbackFunction.cpp
29 API/JSCallbackObject.cpp
33 API/JSProfilerPrivate.cpp
36 API/JSWeakObjectMapRefPrivate.cpp
37 API/OpaqueJSString.cpp
39 bytecode/CallLinkInfo.cpp
40 bytecode/CallLinkStatus.cpp
41 bytecode/CodeBlock.cpp
42 bytecode/DFGExitProfile.cpp
43 bytecode/ExecutionCounter.cpp
44 bytecode/GetByIdStatus.cpp
45 bytecode/JumpTable.cpp
46 bytecode/LazyOperandValueProfile.cpp
47 bytecode/MethodCallLinkInfo.cpp
48 bytecode/MethodCallLinkStatus.cpp
49 bytecode/MethodOfGettingAValueProfile.cpp
51 bytecode/PolymorphicPutByIdList.cpp
52 bytecode/PredictedType.cpp
53 bytecode/PutByIdStatus.cpp
54 bytecode/SamplingTool.cpp
55 bytecode/StructureStubInfo.cpp
57 bytecompiler/BytecodeGenerator.cpp
58 bytecompiler/NodesCodegen.cpp
60 dfg/DFGAbstractState.cpp
61 dfg/DFGArithNodeFlagsInferencePhase.cpp
62 dfg/DFGAssemblyHelpers.cpp
63 dfg/DFGByteCodeParser.cpp
64 dfg/DFGCapabilities.cpp
66 dfg/DFGCorrectableJumpPoint.cpp
70 dfg/DFGJITCompiler.cpp
73 dfg/DFGOSRExitCompiler.cpp
74 dfg/DFGOSRExitCompiler32_64.cpp
75 dfg/DFGOSRExitCompiler64.cpp
78 dfg/DFGPredictionPropagationPhase.cpp
80 dfg/DFGSpeculativeJIT.cpp
81 dfg/DFGSpeculativeJIT32_64.cpp
82 dfg/DFGSpeculativeJIT64.cpp
84 dfg/DFGVirtualRegisterAllocationPhase.cpp
87 heap/DFGCodeBlocks.cpp
91 heap/MachineStackMarker.cpp
92 heap/MarkedAllocator.cpp
95 heap/ConservativeRoots.cpp
99 debugger/DebuggerActivation.cpp
100 debugger/DebuggerCallFrame.cpp
102 interpreter/AbstractPC.cpp
103 interpreter/CallFrame.cpp
104 interpreter/Interpreter.cpp
105 interpreter/RegisterFile.cpp
107 jit/ExecutableAllocator.cpp
108 jit/HostCallReturnValue.cpp
109 jit/JITArithmetic32_64.cpp
110 jit/JITArithmetic.cpp
114 jit/JITExceptions.cpp
115 jit/JITOpcodes32_64.cpp
117 jit/JITPropertyAccess32_64.cpp
118 jit/JITPropertyAccess.cpp
120 jit/ThunkGenerators.cpp
125 parser/ParserArena.cpp
126 parser/SourceProviderCache.cpp
129 profiler/ProfileGenerator.cpp
130 profiler/ProfileNode.cpp
131 profiler/Profiler.cpp
134 runtime/Arguments.cpp
135 runtime/ArrayConstructor.cpp
136 runtime/ArrayPrototype.cpp
137 runtime/BooleanConstructor.cpp
138 runtime/BooleanObject.cpp
139 runtime/BooleanPrototype.cpp
141 runtime/CommonIdentifiers.cpp
142 runtime/Completion.cpp
143 runtime/ConstructData.cpp
144 runtime/DateConstructor.cpp
145 runtime/DateConversion.cpp
146 runtime/DateInstance.cpp
147 runtime/DatePrototype.cpp
149 runtime/ErrorConstructor.cpp
150 runtime/ErrorInstance.cpp
151 runtime/ErrorPrototype.cpp
152 runtime/ExceptionHelpers.cpp
153 runtime/Executable.cpp
154 runtime/FunctionConstructor.cpp
155 runtime/FunctionPrototype.cpp
156 runtime/GCActivityCallback.cpp
157 runtime/GetterSetter.cpp
158 runtime/Identifier.cpp
159 runtime/InitializeThreading.cpp
160 runtime/InternalFunction.cpp
161 runtime/JSActivation.cpp
162 runtime/JSAPIValueWrapper.cpp
164 runtime/JSByteArray.cpp
166 runtime/JSDateMath.cpp
167 runtime/JSFunction.cpp
168 runtime/JSBoundFunction.cpp
169 runtime/JSGlobalData.cpp
170 runtime/JSGlobalObject.cpp
171 runtime/JSGlobalObjectFunctions.cpp
172 runtime/JSGlobalThis.cpp
174 runtime/JSNotAnObject.cpp
176 runtime/JSONObject.cpp
177 runtime/JSPropertyNameIterator.cpp
178 runtime/JSStaticScopeObject.cpp
181 runtime/JSVariableObject.cpp
182 runtime/JSWrapperObject.cpp
183 runtime/LiteralParser.cpp
185 runtime/MathObject.cpp
186 runtime/NativeErrorConstructor.cpp
187 runtime/NativeErrorPrototype.cpp
188 runtime/NumberConstructor.cpp
189 runtime/NumberObject.cpp
190 runtime/NumberPrototype.cpp
191 runtime/ObjectConstructor.cpp
192 runtime/ObjectPrototype.cpp
193 runtime/Operations.cpp
195 runtime/PropertyDescriptor.cpp
196 runtime/PropertyNameArray.cpp
197 runtime/PropertySlot.cpp
199 runtime/RegExpCache.cpp
200 runtime/RegExpConstructor.cpp
201 runtime/RegExpObject.cpp
202 runtime/RegExpPrototype.cpp
203 runtime/ScopeChain.cpp
204 runtime/SmallStrings.cpp
205 runtime/StrictEvalActivation.cpp
206 runtime/StringConstructor.cpp
207 runtime/StringObject.cpp
208 runtime/StringPrototype.cpp
209 runtime/StringRecursionChecker.cpp
210 runtime/Structure.cpp
211 runtime/StructureChain.cpp
212 runtime/TimeoutChecker.cpp
215 tools/CodeProfile.cpp
216 tools/CodeProfiling.cpp
219 yarr/YarrInterpreter.cpp
221 yarr/YarrSyntaxChecker.cpp
224 SET(JavaScriptCore_LUT_FILES
225 runtime/ArrayConstructor.cpp
226 runtime/ArrayPrototype.cpp
227 runtime/BooleanPrototype.cpp
228 runtime/DateConstructor.cpp
229 runtime/DatePrototype.cpp
230 runtime/ErrorPrototype.cpp
231 runtime/JSGlobalObject.cpp
232 runtime/JSONObject.cpp
233 runtime/MathObject.cpp
234 runtime/NumberConstructor.cpp
235 runtime/NumberPrototype.cpp
236 runtime/ObjectConstructor.cpp
237 runtime/ObjectPrototype.cpp
238 runtime/RegExpConstructor.cpp
239 runtime/RegExpObject.cpp
240 runtime/RegExpPrototype.cpp
241 runtime/StringConstructor.cpp
242 runtime/StringPrototype.cpp
245 SET(JavaScriptCore_LIBRARIES
250 # GENERATOR 1-A: LUT creator
251 FOREACH (_file ${JavaScriptCore_LUT_FILES})
252 GET_FILENAME_COMPONENT(_name ${_file} NAME_WE)
253 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
254 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
258 # GENERATOR 1-B: particular LUT creator (for 1 file only)
259 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
260 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
262 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
264 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
265 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
266 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
268 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
271 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
273 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
274 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py
275 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py ${JAVASCRIPTCORE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
277 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
280 LIST(APPEND JavaScriptCore_SOURCES
281 assembler/ARMAssembler.cpp
282 assembler/ARMv7Assembler.cpp
283 assembler/MacroAssemblerARM.cpp
285 ELSEIF (WTF_CPU_MIPS)
287 ELSEIF (WTF_CPU_X86_64)
289 MESSAGE(FATAL_ERROR "Unknown CPU")
293 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
296 ADD_SUBDIRECTORY(wtf)
297 ADD_SUBDIRECTORY(shell)
299 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
300 INCLUDE_DIRECTORIES(${JavaScriptCore_INCLUDE_DIRECTORIES})
301 ADD_DEFINITIONS(-DBUILDING_JavaScriptCore)
302 ADD_LIBRARY(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
303 TARGET_LINK_LIBRARIES(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARIES})
304 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES LINK_INTERFACE_LIBRARIES "")
306 IF (JavaScriptCore_LINK_FLAGS)
307 ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS "${JavaScriptCore_LINK_FLAGS}")
311 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
312 INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION "${LIB_INSTALL_DIR}")