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"
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/DFGArgumentsSimplificationPhase.cpp
62 dfg/DFGAssemblyHelpers.cpp
63 dfg/DFGByteCodeParser.cpp
64 dfg/DFGCapabilities.cpp
66 dfg/DFGCFGSimplificationPhase.cpp
67 dfg/DFGConstantFoldingPhase.cpp
68 dfg/DFGCorrectableJumpPoint.cpp
74 dfg/DFGJITCompiler.cpp
78 dfg/DFGOSRExitCompiler.cpp
79 dfg/DFGOSRExitCompiler32_64.cpp
80 dfg/DFGOSRExitCompiler64.cpp
83 dfg/DFGPredictionPropagationPhase.cpp
84 dfg/DFGRedundantPhiEliminationPhase.cpp
86 dfg/DFGSpeculativeJIT.cpp
87 dfg/DFGSpeculativeJIT32_64.cpp
88 dfg/DFGSpeculativeJIT64.cpp
91 dfg/DFGVirtualRegisterAllocationPhase.cpp
93 heap/BlockAllocator.cpp
95 heap/ConservativeRoots.cpp
96 heap/DFGCodeBlocks.cpp
100 heap/MachineStackMarker.cpp
101 heap/MarkedAllocator.cpp
106 heap/WeakHandleOwner.cpp
109 debugger/Debugger.cpp
110 debugger/DebuggerActivation.cpp
111 debugger/DebuggerCallFrame.cpp
113 interpreter/AbstractPC.cpp
114 interpreter/CallFrame.cpp
115 interpreter/Interpreter.cpp
116 interpreter/RegisterFile.cpp
118 jit/ExecutableAllocator.cpp
119 jit/HostCallReturnValue.cpp
120 jit/JITArithmetic32_64.cpp
121 jit/JITArithmetic.cpp
125 jit/JITExceptions.cpp
126 jit/JITOpcodes32_64.cpp
128 jit/JITPropertyAccess32_64.cpp
129 jit/JITPropertyAccess.cpp
131 jit/ThunkGenerators.cpp
136 parser/ParserArena.cpp
137 parser/SourceProviderCache.cpp
140 profiler/ProfileGenerator.cpp
141 profiler/ProfileNode.cpp
142 profiler/Profiler.cpp
145 runtime/Arguments.cpp
146 runtime/ArrayConstructor.cpp
147 runtime/ArrayPrototype.cpp
148 runtime/BooleanConstructor.cpp
149 runtime/BooleanObject.cpp
150 runtime/BooleanPrototype.cpp
152 runtime/CommonIdentifiers.cpp
153 runtime/Completion.cpp
154 runtime/ConstructData.cpp
155 runtime/DateConstructor.cpp
156 runtime/DateConversion.cpp
157 runtime/DateInstance.cpp
158 runtime/DatePrototype.cpp
160 runtime/ErrorConstructor.cpp
161 runtime/ErrorInstance.cpp
162 runtime/ErrorPrototype.cpp
163 runtime/ExceptionHelpers.cpp
164 runtime/Executable.cpp
165 runtime/FunctionConstructor.cpp
166 runtime/FunctionPrototype.cpp
167 runtime/GCActivityCallback.cpp
168 runtime/GetterSetter.cpp
169 runtime/Identifier.cpp
170 runtime/InitializeThreading.cpp
171 runtime/InternalFunction.cpp
172 runtime/JSActivation.cpp
173 runtime/JSAPIValueWrapper.cpp
176 runtime/JSDateMath.cpp
177 runtime/JSFunction.cpp
178 runtime/JSBoundFunction.cpp
179 runtime/JSGlobalData.cpp
180 runtime/JSGlobalObject.cpp
181 runtime/JSGlobalObjectFunctions.cpp
182 runtime/JSGlobalThis.cpp
184 runtime/JSNotAnObject.cpp
186 runtime/JSONObject.cpp
187 runtime/JSPropertyNameIterator.cpp
188 runtime/JSStaticScopeObject.cpp
190 runtime/JSStringJoiner.cpp
192 runtime/JSVariableObject.cpp
193 runtime/JSWrapperObject.cpp
194 runtime/LiteralParser.cpp
196 runtime/MathObject.cpp
197 runtime/NameConstructor.cpp
198 runtime/NameConstructor.h
199 runtime/NameInstance.cpp
200 runtime/NameInstance.h
201 runtime/NamePrototype.cpp
202 runtime/NamePrototype.h
203 runtime/NativeErrorConstructor.cpp
204 runtime/NativeErrorPrototype.cpp
205 runtime/NumberConstructor.cpp
206 runtime/NumberObject.cpp
207 runtime/NumberPrototype.cpp
208 runtime/ObjectConstructor.cpp
209 runtime/ObjectPrototype.cpp
210 runtime/Operations.cpp
212 runtime/PropertyDescriptor.cpp
213 runtime/PropertyNameArray.cpp
214 runtime/PropertySlot.cpp
216 runtime/RegExpCache.cpp
217 runtime/RegExpConstructor.cpp
218 runtime/RegExpCachedResult.cpp
219 runtime/RegExpMatchesArray.cpp
220 runtime/RegExpObject.cpp
221 runtime/RegExpPrototype.cpp
222 runtime/ScopeChain.cpp
223 runtime/SmallStrings.cpp
224 runtime/StrictEvalActivation.cpp
225 runtime/StringConstructor.cpp
226 runtime/StringObject.cpp
227 runtime/StringPrototype.cpp
228 runtime/StringRecursionChecker.cpp
229 runtime/Structure.cpp
230 runtime/StructureChain.cpp
231 runtime/TimeoutChecker.cpp
234 tools/CodeProfile.cpp
235 tools/CodeProfiling.cpp
237 yarr/YarrCanonicalizeUCS2.cpp
239 yarr/YarrInterpreter.cpp
241 yarr/YarrSyntaxChecker.cpp
244 SET(JavaScriptCore_LUT_FILES
245 runtime/ArrayConstructor.cpp
246 runtime/ArrayPrototype.cpp
247 runtime/BooleanPrototype.cpp
248 runtime/DateConstructor.cpp
249 runtime/DatePrototype.cpp
250 runtime/ErrorPrototype.cpp
251 runtime/JSGlobalObject.cpp
252 runtime/JSONObject.cpp
253 runtime/MathObject.cpp
254 runtime/NamePrototype.cpp
255 runtime/NumberConstructor.cpp
256 runtime/NumberPrototype.cpp
257 runtime/ObjectConstructor.cpp
258 runtime/ObjectPrototype.cpp
259 runtime/RegExpConstructor.cpp
260 runtime/RegExpObject.cpp
261 runtime/RegExpPrototype.cpp
262 runtime/StringConstructor.cpp
263 runtime/StringPrototype.cpp
266 SET(JavaScriptCore_LIBRARIES
271 # GENERATOR 1-A: LUT creator
272 FOREACH (_file ${JavaScriptCore_LUT_FILES})
273 GET_FILENAME_COMPONENT(_name ${_file} NAME_WE)
274 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
275 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
279 # GENERATOR 1-B: particular LUT creator (for 1 file only)
280 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
281 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
283 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
285 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
286 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
287 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
289 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
292 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
294 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
295 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py
296 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py ${JAVASCRIPTCORE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
298 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
301 LIST(APPEND JavaScriptCore_SOURCES
302 assembler/ARMAssembler.cpp
303 assembler/ARMv7Assembler.cpp
304 assembler/MacroAssemblerARM.cpp
306 ELSEIF (WTF_CPU_MIPS)
308 ELSEIF (WTF_CPU_X86_64)
310 MESSAGE(FATAL_ERROR "Unknown CPU")
314 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
317 ADD_SUBDIRECTORY(shell)
319 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
320 INCLUDE_DIRECTORIES(${JavaScriptCore_INCLUDE_DIRECTORIES})
321 ADD_DEFINITIONS(-DBUILDING_JavaScriptCore)
322 ADD_LIBRARY(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
323 TARGET_LINK_LIBRARIES(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARIES})
324 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES FOLDER "JavaScriptCore")
325 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES LINK_INTERFACE_LIBRARIES "")
327 IF ("x$ENV{SKIP_SCANNING}" STREQUAL "x1")
328 SET_DIRECTORY_PROPERTIES(PROPERTIES INCLUDE_REGULAR_EXPRESSION "^$")
331 IF (JavaScriptCore_LINK_FLAGS)
332 ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS "${JavaScriptCore_LINK_FLAGS}")
336 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
337 INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION "${LIB_INSTALL_DIR}")