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}/parser"
15 "${JAVASCRIPTCORE_DIR}/profiler"
16 "${JAVASCRIPTCORE_DIR}/runtime"
17 "${JAVASCRIPTCORE_DIR}/yarr"
18 "${JAVASCRIPTCORE_DIR}/wtf"
19 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
23 SET(JavaScriptCore_SOURCES
25 API/JSCallbackConstructor.cpp
26 API/JSCallbackFunction.cpp
27 API/JSCallbackObject.cpp
31 API/JSProfilerPrivate.cpp
34 API/JSWeakObjectMapRefPrivate.cpp
35 API/OpaqueJSString.cpp
37 bytecode/CodeBlock.cpp
38 bytecode/JumpTable.cpp
40 bytecode/PredictedType.cpp
41 bytecode/SamplingTool.cpp
42 bytecode/StructureStubInfo.cpp
43 bytecode/ValueProfile.cpp
45 bytecompiler/BytecodeGenerator.cpp
46 bytecompiler/NodesCodegen.cpp
51 heap/MachineStackMarker.cpp
54 heap/ConservativeRoots.cpp
58 debugger/DebuggerActivation.cpp
59 debugger/DebuggerCallFrame.cpp
61 interpreter/CallFrame.cpp
62 interpreter/Interpreter.cpp
63 interpreter/RegisterFile.cpp
65 jit/ExecutableAllocator.cpp
66 jit/JITArithmetic32_64.cpp
71 jit/JITOpcodes32_64.cpp
73 jit/JITPropertyAccess32_64.cpp
74 jit/JITPropertyAccess.cpp
76 jit/ThunkGenerators.cpp
82 parser/ParserArena.cpp
83 parser/SourceProviderCache.cpp
86 profiler/ProfileGenerator.cpp
87 profiler/ProfileNode.cpp
92 runtime/ArrayConstructor.cpp
93 runtime/ArrayPrototype.cpp
94 runtime/BooleanConstructor.cpp
95 runtime/BooleanObject.cpp
96 runtime/BooleanPrototype.cpp
98 runtime/CommonIdentifiers.cpp
99 runtime/Completion.cpp
100 runtime/ConstructData.cpp
101 runtime/DateConstructor.cpp
102 runtime/DateConversion.cpp
103 runtime/DateInstance.cpp
104 runtime/DatePrototype.cpp
106 runtime/ErrorConstructor.cpp
107 runtime/ErrorInstance.cpp
108 runtime/ErrorPrototype.cpp
109 runtime/ExceptionHelpers.cpp
110 runtime/Executable.cpp
111 runtime/FunctionConstructor.cpp
112 runtime/FunctionPrototype.cpp
113 runtime/GCActivityCallback.cpp
114 runtime/GetterSetter.cpp
115 runtime/Identifier.cpp
116 runtime/InitializeThreading.cpp
117 runtime/InternalFunction.cpp
118 runtime/JSActivation.cpp
119 runtime/JSAPIValueWrapper.cpp
121 runtime/JSByteArray.cpp
123 runtime/JSFunction.cpp
124 runtime/JSGlobalData.cpp
125 runtime/JSGlobalObject.cpp
126 runtime/JSGlobalObjectFunctions.cpp
128 runtime/JSNotAnObject.cpp
130 runtime/JSONObject.cpp
131 runtime/JSPropertyNameIterator.cpp
132 runtime/JSStaticScopeObject.cpp
135 runtime/JSVariableObject.cpp
136 runtime/JSWrapperObject.cpp
137 runtime/LiteralParser.cpp
139 runtime/MathObject.cpp
140 runtime/NativeErrorConstructor.cpp
141 runtime/NativeErrorPrototype.cpp
142 runtime/NumberConstructor.cpp
143 runtime/NumberObject.cpp
144 runtime/NumberPrototype.cpp
145 runtime/ObjectConstructor.cpp
146 runtime/ObjectPrototype.cpp
147 runtime/Operations.cpp
148 runtime/PropertyDescriptor.cpp
149 runtime/PropertyNameArray.cpp
150 runtime/PropertySlot.cpp
152 runtime/RegExpCache.cpp
153 runtime/RegExpConstructor.cpp
154 runtime/RegExpObject.cpp
155 runtime/RegExpPrototype.cpp
157 runtime/ScopeChain.cpp
158 runtime/SmallStrings.cpp
159 runtime/StrictEvalActivation.cpp
160 runtime/StringConstructor.cpp
161 runtime/StringObject.cpp
162 runtime/StringPrototype.cpp
163 runtime/StringRecursionChecker.cpp
164 runtime/Structure.cpp
165 runtime/StructureChain.cpp
166 runtime/TimeoutChecker.cpp
170 yarr/YarrInterpreter.cpp
172 yarr/YarrSyntaxChecker.cpp
174 SET(JavaScriptCore_HEADERS )
176 SET(JavaScriptCore_LUT_FILES
177 runtime/ArrayConstructor.cpp
178 runtime/ArrayPrototype.cpp
179 runtime/BooleanPrototype.cpp
180 runtime/DateConstructor.cpp
181 runtime/DatePrototype.cpp
182 runtime/ErrorPrototype.cpp
183 runtime/JSGlobalObject.cpp
184 runtime/JSONObject.cpp
185 runtime/MathObject.cpp
186 runtime/NumberConstructor.cpp
187 runtime/NumberPrototype.cpp
188 runtime/ObjectConstructor.cpp
189 runtime/ObjectPrototype.cpp
190 runtime/RegExpConstructor.cpp
191 runtime/RegExpObject.cpp
192 runtime/RegExpPrototype.cpp
193 runtime/StringConstructor.cpp
194 runtime/StringPrototype.cpp
197 SET(JavaScriptCore_LIBRARIES
202 # GENERATOR 1-A: LUT creator
203 FOREACH (_file ${JavaScriptCore_LUT_FILES})
204 GET_FILENAME_COMPONENT(_name ${_file} NAME_WE)
205 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
206 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
210 # GENERATOR 1-B: particular LUT creator (for 1 file only)
211 GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
212 LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
214 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
216 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
217 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
218 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
220 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
223 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
225 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
226 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py
227 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py ${JAVASCRIPTCORE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
229 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
232 LIST(APPEND JavaScriptCore_SOURCES
233 assembler/ARMAssembler.cpp
234 assembler/ARMv7Assembler.cpp
235 assembler/MacroAssemblerARM.cpp
237 ELSEIF (WTF_CPU_MIPS)
239 ELSEIF (WTF_CPU_X86_64)
241 MESSAGE(FATAL_ERROR "Unknown CPU")
245 INCLUDE_IF_EXISTS(${JAVASCRIPTCORE_DIR}/CMakeLists${PORT}.txt)
248 ADD_SUBDIRECTORY(wtf)
249 ADD_SUBDIRECTORY(shell)
251 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
252 INCLUDE_DIRECTORIES(${JavaScriptCore_INCLUDE_DIRECTORIES})
253 ADD_DEFINITIONS(-DBUILDING_JavaScriptCore)
254 ADD_LIBRARY(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
255 TARGET_LINK_LIBRARIES(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARIES})
257 IF (JavaScriptCore_LINK_FLAGS)
258 ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS "${JavaScriptCore_LINK_FLAGS}")
262 SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
263 INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION lib)