[Release] Webkit-EFL Ver. 2.0_beta_118996_0.6.24
[framework/web/webkit-efl.git] / Source / JavaScriptCore / CMakeLists.txt
1 SET(JavaScriptCore_INCLUDE_DIRECTORIES
2     "${CMAKE_BINARY_DIR}"
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     "${WTF_DIR}"
21     "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
22     "${CMAKE_SOURCE_DIR}/Source"
23 )
24
25 SET(JavaScriptCore_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/JSProfilerPrivate.cpp
34     API/JSStringRef.cpp
35     API/JSValueRef.cpp
36     API/JSWeakObjectMapRefPrivate.cpp
37     API/OpaqueJSString.cpp
38
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
50     bytecode/Opcode.cpp
51     bytecode/PolymorphicPutByIdList.cpp
52     bytecode/PredictedType.cpp
53     bytecode/PutByIdStatus.cpp
54     bytecode/SamplingTool.cpp
55     bytecode/StructureStubInfo.cpp
56
57     bytecompiler/BytecodeGenerator.cpp
58     bytecompiler/NodesCodegen.cpp
59
60     dfg/DFGAbstractState.cpp
61     dfg/DFGArgumentsSimplificationPhase.cpp
62     dfg/DFGAssemblyHelpers.cpp
63     dfg/DFGByteCodeParser.cpp
64     dfg/DFGCapabilities.cpp
65     dfg/DFGCFAPhase.cpp
66     dfg/DFGCFGSimplificationPhase.cpp
67     dfg/DFGConstantFoldingPhase.cpp
68     dfg/DFGCorrectableJumpPoint.cpp
69     dfg/DFGCSEPhase.cpp
70     dfg/DFGDominators.cpp
71     dfg/DFGDriver.cpp
72     dfg/DFGFixupPhase.cpp
73     dfg/DFGGraph.cpp
74     dfg/DFGJITCompiler.cpp
75     dfg/DFGNodeFlags.cpp
76     dfg/DFGOSREntry.cpp
77     dfg/DFGOSRExit.cpp
78     dfg/DFGOSRExitCompiler.cpp
79     dfg/DFGOSRExitCompiler32_64.cpp
80     dfg/DFGOSRExitCompiler64.cpp
81     dfg/DFGOperations.cpp
82     dfg/DFGPhase.cpp
83     dfg/DFGPredictionPropagationPhase.cpp
84     dfg/DFGRedundantPhiEliminationPhase.cpp
85     dfg/DFGRepatch.cpp
86     dfg/DFGSpeculativeJIT.cpp
87     dfg/DFGSpeculativeJIT32_64.cpp
88     dfg/DFGSpeculativeJIT64.cpp
89     dfg/DFGThunks.cpp
90     dfg/DFGValidate.cpp
91     dfg/DFGVirtualRegisterAllocationPhase.cpp
92
93     heap/BlockAllocator.cpp
94     heap/CopiedSpace.cpp
95     heap/ConservativeRoots.cpp
96     heap/DFGCodeBlocks.cpp
97     heap/HandleSet.cpp
98     heap/HandleStack.cpp
99     heap/Heap.cpp
100     heap/MachineStackMarker.cpp
101     heap/MarkedAllocator.cpp
102     heap/MarkedBlock.cpp
103     heap/MarkedSpace.cpp
104     heap/MarkStack.cpp
105     heap/WeakSet.cpp
106     heap/WeakHandleOwner.cpp
107     heap/WeakBlock.cpp
108
109     debugger/Debugger.cpp
110     debugger/DebuggerActivation.cpp
111     debugger/DebuggerCallFrame.cpp
112     
113     interpreter/AbstractPC.cpp
114     interpreter/CallFrame.cpp
115     interpreter/Interpreter.cpp
116     interpreter/RegisterFile.cpp
117
118     jit/ExecutableAllocator.cpp
119     jit/HostCallReturnValue.cpp
120     jit/JITArithmetic32_64.cpp
121     jit/JITArithmetic.cpp
122     jit/JITCall32_64.cpp
123     jit/JITCall.cpp
124     jit/JIT.cpp
125     jit/JITExceptions.cpp
126     jit/JITOpcodes32_64.cpp
127     jit/JITOpcodes.cpp
128     jit/JITPropertyAccess32_64.cpp
129     jit/JITPropertyAccess.cpp
130     jit/JITStubs.cpp
131     jit/ThunkGenerators.cpp
132
133     parser/Lexer.cpp
134     parser/Nodes.cpp
135     parser/Parser.cpp
136     parser/ParserArena.cpp
137     parser/SourceProviderCache.cpp
138
139     profiler/Profile.cpp
140     profiler/ProfileGenerator.cpp
141     profiler/ProfileNode.cpp
142     profiler/Profiler.cpp
143
144     runtime/ArgList.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
151     runtime/CallData.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
159     runtime/Error.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
174     runtime/JSArray.cpp
175     runtime/JSCell.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
183     runtime/JSLock.cpp
184     runtime/JSNotAnObject.cpp
185     runtime/JSObject.cpp
186     runtime/JSONObject.cpp
187     runtime/JSPropertyNameIterator.cpp
188     runtime/JSStaticScopeObject.cpp
189     runtime/JSString.cpp
190     runtime/JSStringJoiner.cpp
191     runtime/JSValue.cpp
192     runtime/JSVariableObject.cpp
193     runtime/JSWrapperObject.cpp
194     runtime/LiteralParser.cpp
195     runtime/Lookup.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
211     runtime/Options.cpp
212     runtime/PropertyDescriptor.cpp
213     runtime/PropertyNameArray.cpp
214     runtime/PropertySlot.cpp
215     runtime/RegExp.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
232     runtime/UString.cpp
233
234     tools/CodeProfile.cpp
235     tools/CodeProfiling.cpp
236
237     yarr/YarrCanonicalizeUCS2.cpp
238     yarr/YarrPattern.cpp
239     yarr/YarrInterpreter.cpp
240     yarr/YarrJIT.cpp
241     yarr/YarrSyntaxChecker.cpp
242 )
243
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
264 )
265
266 SET(JavaScriptCore_LIBRARIES
267     ${WTF_LIBRARY_NAME}
268 )
269
270
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)
276 ENDFOREACH ()
277
278
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)
282
283 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
284 ADD_CUSTOM_COMMAND(
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
288     VERBATIM)
289 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
290
291
292 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
293 ADD_CUSTOM_COMMAND(
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
297     VERBATIM)
298 ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
299
300 IF (WTF_CPU_ARM)
301     LIST(APPEND JavaScriptCore_SOURCES
302         assembler/ARMAssembler.cpp
303         assembler/ARMv7Assembler.cpp
304         assembler/MacroAssemblerARM.cpp
305     )
306 ELSEIF (WTF_CPU_MIPS)
307 ELSEIF (WTF_CPU_X86)
308 ELSEIF (WTF_CPU_X86_64)
309 ELSE ()
310     MESSAGE(FATAL_ERROR "Unknown CPU")
311 ENDIF ()
312
313
314 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
315
316
317 ADD_SUBDIRECTORY(shell)
318
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 "")
326
327 IF ("x$ENV{SKIP_SCANNING}" STREQUAL "x1")
328     SET_DIRECTORY_PROPERTIES(PROPERTIES INCLUDE_REGULAR_EXPRESSION "^$")
329 ENDIF ()
330
331 IF (JavaScriptCore_LINK_FLAGS)
332     ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS "${JavaScriptCore_LINK_FLAGS}")
333 ENDIF ()
334
335 IF (SHARED_CORE)
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}")
338 ENDIF ()