]> git.saurik.com Git - apple/javascriptcore.git/blob - CMakeLists.txt
JavaScriptCore-7600.1.4.9.tar.gz
[apple/javascriptcore.git] / 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}/bindings"
8 "${JAVASCRIPTCORE_DIR}/builtins"
9 "${JAVASCRIPTCORE_DIR}/bytecode"
10 "${JAVASCRIPTCORE_DIR}/bytecompiler"
11 "${JAVASCRIPTCORE_DIR}/dfg"
12 "${JAVASCRIPTCORE_DIR}/disassembler"
13 "${JAVASCRIPTCORE_DIR}/ftl"
14 "${JAVASCRIPTCORE_DIR}/heap"
15 "${JAVASCRIPTCORE_DIR}/debugger"
16 "${JAVASCRIPTCORE_DIR}/inspector"
17 "${JAVASCRIPTCORE_DIR}/inspector/agents"
18 "${JAVASCRIPTCORE_DIR}/interpreter"
19 "${JAVASCRIPTCORE_DIR}/jit"
20 "${JAVASCRIPTCORE_DIR}/llint"
21 "${JAVASCRIPTCORE_DIR}/llvm"
22 "${JAVASCRIPTCORE_DIR}/parser"
23 "${JAVASCRIPTCORE_DIR}/profiler"
24 "${JAVASCRIPTCORE_DIR}/replay"
25 "${JAVASCRIPTCORE_DIR}/runtime"
26 "${JAVASCRIPTCORE_DIR}/tools"
27 "${JAVASCRIPTCORE_DIR}/yarr"
28 "${WTF_DIR}"
29 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
30 "${CMAKE_SOURCE_DIR}/Source"
31 ${ICU_INCLUDE_DIRS}
32 )
33
34 set(JavaScriptCore_SOURCES
35 API/JSBase.cpp
36 API/JSCTestRunnerUtils.cpp
37 API/JSCallbackConstructor.cpp
38 API/JSCallbackFunction.cpp
39 API/JSCallbackObject.cpp
40 API/JSClassRef.cpp
41 API/JSContextRef.cpp
42 API/JSObjectRef.cpp
43 API/JSProfilerPrivate.cpp
44 API/JSScriptRef.cpp
45 API/JSStringRef.cpp
46 API/JSValueRef.cpp
47 API/JSWeakObjectMapRefPrivate.cpp
48 API/OpaqueJSString.cpp
49
50 assembler/LinkBuffer.cpp
51 assembler/MacroAssembler.cpp
52 assembler/MacroAssemblerX86Common.cpp
53
54 bindings/ScriptFunctionCall.cpp
55 bindings/ScriptObject.cpp
56 bindings/ScriptValue.cpp
57
58 builtins/BuiltinExecutables.cpp
59
60 bytecode/ArrayAllocationProfile.cpp
61 bytecode/ArrayProfile.cpp
62 bytecode/BytecodeBasicBlock.cpp
63 bytecode/BytecodeLivenessAnalysis.cpp
64 bytecode/CallLinkInfo.cpp
65 bytecode/CallLinkStatus.cpp
66 bytecode/CodeBlock.cpp
67 bytecode/CodeBlockHash.cpp
68 bytecode/CodeBlockJettisoningWatchpoint.cpp
69 bytecode/CodeOrigin.cpp
70 bytecode/CodeType.cpp
71 bytecode/DFGExitProfile.cpp
72 bytecode/DeferredCompilationCallback.cpp
73 bytecode/ExecutionCounter.cpp
74 bytecode/ExitKind.cpp
75 bytecode/ExitingJITType.cpp
76 bytecode/GetByIdStatus.cpp
77 bytecode/GetByIdVariant.cpp
78 bytecode/InlineCallFrameSet.cpp
79 bytecode/JumpTable.cpp
80 bytecode/LazyOperandValueProfile.cpp
81 bytecode/MethodOfGettingAValueProfile.cpp
82 bytecode/Opcode.cpp
83 bytecode/PolymorphicGetByIdList.cpp
84 bytecode/PolymorphicPutByIdList.cpp
85 bytecode/PreciseJumpTargets.cpp
86 bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp
87 bytecode/PutByIdStatus.cpp
88 bytecode/PutByIdVariant.cpp
89 bytecode/ReduceWhitespace.cpp
90 bytecode/SamplingTool.cpp
91 bytecode/SpecialPointer.cpp
92 bytecode/SpeculatedType.cpp
93 bytecode/StructureStubClearingWatchpoint.cpp
94 bytecode/StructureStubInfo.cpp
95 bytecode/UnlinkedCodeBlock.cpp
96 bytecode/UnlinkedInstructionStream.cpp
97 bytecode/ValueRecovery.cpp
98 bytecode/Watchpoint.cpp
99
100 bytecompiler/BytecodeGenerator.cpp
101 bytecompiler/NodesCodegen.cpp
102
103 debugger/Debugger.cpp
104 debugger/DebuggerActivation.cpp
105 debugger/DebuggerCallFrame.cpp
106
107 dfg/DFGAbstractHeap.cpp
108 dfg/DFGAbstractValue.cpp
109 dfg/DFGArgumentsSimplificationPhase.cpp
110 dfg/DFGArithMode.cpp
111 dfg/DFGArrayMode.cpp
112 dfg/DFGAtTailAbstractState.cpp
113 dfg/DFGAvailability.cpp
114 dfg/DFGBackwardsPropagationPhase.cpp
115 dfg/DFGBasicBlock.cpp
116 dfg/DFGBinarySwitch.cpp
117 dfg/DFGBlockInsertionSet.cpp
118 dfg/DFGByteCodeParser.cpp
119 dfg/DFGCFAPhase.cpp
120 dfg/DFGCFGSimplificationPhase.cpp
121 dfg/DFGCPSRethreadingPhase.cpp
122 dfg/DFGCSEPhase.cpp
123 dfg/DFGCapabilities.cpp
124 dfg/DFGClobberSet.cpp
125 dfg/DFGClobberize.cpp
126 dfg/DFGCommon.cpp
127 dfg/DFGCommonData.cpp
128 dfg/DFGCompilationKey.cpp
129 dfg/DFGCompilationMode.cpp
130 dfg/DFGConstantFoldingPhase.cpp
131 dfg/DFGCriticalEdgeBreakingPhase.cpp
132 dfg/DFGDCEPhase.cpp
133 dfg/DFGDesiredIdentifiers.cpp
134 dfg/DFGDesiredStructureChains.cpp
135 dfg/DFGDesiredTransitions.cpp
136 dfg/DFGDesiredWatchpoints.cpp
137 dfg/DFGDesiredWeakReferences.cpp
138 dfg/DFGDesiredWriteBarriers.cpp
139 dfg/DFGDisassembler.cpp
140 dfg/DFGDominators.cpp
141 dfg/DFGDriver.cpp
142 dfg/DFGEdge.cpp
143 dfg/DFGFailedFinalizer.cpp
144 dfg/DFGFinalizer.cpp
145 dfg/DFGFixupPhase.cpp
146 dfg/DFGFlushFormat.cpp
147 dfg/DFGFlushedAt.cpp
148 dfg/DFGFunctionWhitelist.cpp
149 dfg/DFGGraph.cpp
150 dfg/DFGGraphSafepoint.cpp
151 dfg/DFGInPlaceAbstractState.cpp
152 dfg/DFGIntegerCheckCombiningPhase.cpp
153 dfg/DFGInvalidationPointInjectionPhase.cpp
154 dfg/DFGJITCode.cpp
155 dfg/DFGJITCompiler.cpp
156 dfg/DFGJITFinalizer.cpp
157 dfg/DFGJumpReplacement.cpp
158 dfg/DFGLICMPhase.cpp
159 dfg/DFGLazyJSValue.cpp
160 dfg/DFGLivenessAnalysisPhase.cpp
161 dfg/DFGLongLivedState.cpp
162 dfg/DFGLoopPreHeaderCreationPhase.cpp
163 dfg/DFGMinifiedNode.cpp
164 dfg/DFGNaturalLoops.cpp
165 dfg/DFGNode.cpp
166 dfg/DFGNodeFlags.cpp
167 dfg/DFGOSRAvailabilityAnalysisPhase.cpp
168 dfg/DFGOSREntry.cpp
169 dfg/DFGOSREntrypointCreationPhase.cpp
170 dfg/DFGOSRExit.cpp
171 dfg/DFGOSRExitBase.cpp
172 dfg/DFGOSRExitCompiler.cpp
173 dfg/DFGOSRExitCompiler32_64.cpp
174 dfg/DFGOSRExitCompiler64.cpp
175 dfg/DFGOSRExitCompilerCommon.cpp
176 dfg/DFGOSRExitJumpPlaceholder.cpp
177 dfg/DFGOSRExitPreparation.cpp
178 dfg/DFGOperations.cpp
179 dfg/DFGPhase.cpp
180 dfg/DFGPlan.cpp
181 dfg/DFGPredictionInjectionPhase.cpp
182 dfg/DFGPredictionPropagationPhase.cpp
183 dfg/DFGResurrectionForValidationPhase.cpp
184 dfg/DFGSSAConversionPhase.cpp
185 dfg/DFGSSALoweringPhase.cpp
186 dfg/DFGSafepoint.cpp
187 dfg/DFGSpeculativeJIT.cpp
188 dfg/DFGSpeculativeJIT32_64.cpp
189 dfg/DFGSpeculativeJIT64.cpp
190 dfg/DFGStackLayoutPhase.cpp
191 dfg/DFGStaticExecutionCountEstimationPhase.cpp
192 dfg/DFGStoreBarrierElisionPhase.cpp
193 dfg/DFGStrengthReductionPhase.cpp
194 dfg/DFGThreadData.cpp
195 dfg/DFGThunks.cpp
196 dfg/DFGTierUpCheckInjectionPhase.cpp
197 dfg/DFGTypeCheckHoistingPhase.cpp
198 dfg/DFGUnificationPhase.cpp
199 dfg/DFGUseKind.cpp
200 dfg/DFGValidate.cpp
201 dfg/DFGValueSource.cpp
202 dfg/DFGVariableAccessData.cpp
203 dfg/DFGVariableAccessDataDump.cpp
204 dfg/DFGVariableEvent.cpp
205 dfg/DFGVariableEventStream.cpp
206 dfg/DFGVirtualRegisterAllocationPhase.cpp
207 dfg/DFGWatchpointCollectionPhase.cpp
208 dfg/DFGWorklist.cpp
209
210 disassembler/ARMv7/ARMv7DOpcode.cpp
211 disassembler/ARMv7Disassembler.cpp
212 disassembler/Disassembler.cpp
213 disassembler/LLVMDisassembler.cpp
214 disassembler/UDis86Disassembler.cpp
215 disassembler/X86Disassembler.cpp
216
217 heap/BlockAllocator.cpp
218 heap/CodeBlockSet.cpp
219 heap/ConservativeRoots.cpp
220 heap/CopiedSpace.cpp
221 heap/CopyVisitor.cpp
222 heap/DeferGC.cpp
223 heap/EdenGCActivityCallback.cpp
224 heap/FullGCActivityCallback.cpp
225 heap/GCActivityCallback.cpp
226 heap/GCLogging.cpp
227 heap/GCThread.cpp
228 heap/GCThreadSharedData.cpp
229 heap/HandleSet.cpp
230 heap/HandleStack.cpp
231 heap/Heap.cpp
232 heap/HeapStatistics.cpp
233 heap/HeapTimer.cpp
234 heap/IncrementalSweeper.cpp
235 heap/JITStubRoutineSet.cpp
236 heap/MachineStackMarker.cpp
237 heap/MarkStack.cpp
238 heap/MarkedAllocator.cpp
239 heap/MarkedBlock.cpp
240 heap/MarkedSpace.cpp
241 heap/SlotVisitor.cpp
242 heap/SuperRegion.cpp
243 heap/Weak.cpp
244 heap/WeakBlock.cpp
245 heap/WeakHandleOwner.cpp
246 heap/WeakSet.cpp
247 heap/WriteBarrierBuffer.cpp
248 heap/WriteBarrierSupport.cpp
249
250 inspector/ConsoleMessage.cpp
251 inspector/ContentSearchUtilities.cpp
252 inspector/IdentifiersFactory.cpp
253 inspector/InjectedScript.cpp
254 inspector/InjectedScriptBase.cpp
255 inspector/InjectedScriptHost.cpp
256 inspector/InjectedScriptManager.cpp
257 inspector/InjectedScriptModule.cpp
258 inspector/InspectorAgentRegistry.cpp
259 inspector/InspectorBackendDispatcher.cpp
260 inspector/InspectorValues.cpp
261 inspector/JSInjectedScriptHost.cpp
262 inspector/JSInjectedScriptHostPrototype.cpp
263 inspector/JSJavaScriptCallFrame.cpp
264 inspector/JSJavaScriptCallFramePrototype.cpp
265 inspector/JavaScriptCallFrame.cpp
266 inspector/ScriptArguments.cpp
267 inspector/ScriptCallFrame.cpp
268 inspector/ScriptCallStack.cpp
269 inspector/ScriptCallStackFactory.cpp
270 inspector/ScriptDebugServer.cpp
271 inspector/agents/InspectorAgent.cpp
272 inspector/agents/InspectorConsoleAgent.cpp
273 inspector/agents/InspectorDebuggerAgent.cpp
274 inspector/agents/InspectorProfilerAgent.cpp
275 inspector/agents/InspectorRuntimeAgent.cpp
276
277 interpreter/AbstractPC.cpp
278 interpreter/CallFrame.cpp
279 interpreter/Interpreter.cpp
280 interpreter/JSStack.cpp
281 interpreter/ProtoCallFrame.cpp
282 interpreter/StackVisitor.cpp
283 interpreter/VMInspector.cpp
284
285 jit/AccessorCallJITStubRoutine.cpp
286 jit/AssemblyHelpers.cpp
287 jit/ArityCheckFailReturnThunks.cpp
288 jit/ClosureCallStubRoutine.cpp
289 jit/ExecutableAllocator.cpp
290 jit/ExecutableAllocatorFixedVMPool.cpp
291 jit/GCAwareJITStubRoutine.cpp
292 jit/HostCallReturnValue.cpp
293 jit/JIT.cpp
294 jit/JITArithmetic.cpp
295 jit/JITArithmetic32_64.cpp
296 jit/JITCall.cpp
297 jit/JITCall32_64.cpp
298 jit/JITCode.cpp
299 jit/JITDisassembler.cpp
300 jit/JITExceptions.cpp
301 jit/JITInlineCacheGenerator.cpp
302 jit/JITOpcodes.cpp
303 jit/JITOpcodes32_64.cpp
304 jit/JITOperations.cpp
305 jit/JITPropertyAccess.cpp
306 jit/JITPropertyAccess32_64.cpp
307 jit/JITStubRoutine.cpp
308 jit/JITStubs.cpp
309 jit/JITThunks.cpp
310 jit/JITToDFGDeferredCompilationCallback.cpp
311 jit/Reg.cpp
312 jit/RegisterPreservationWrapperGenerator.cpp
313 jit/RegisterSet.cpp
314 jit/Repatch.cpp
315 jit/ScratchRegisterAllocator.cpp
316 jit/TempRegisterSet.cpp
317 jit/ThunkGenerators.cpp
318
319 parser/Lexer.cpp
320 parser/Nodes.cpp
321 parser/Parser.cpp
322 parser/ParserArena.cpp
323 parser/SourceCode.cpp
324 parser/SourceProvider.cpp
325 parser/SourceProviderCache.cpp
326
327 profiler/LegacyProfiler.cpp
328 profiler/Profile.cpp
329 profiler/ProfileGenerator.cpp
330 profiler/ProfileNode.cpp
331 profiler/ProfilerBytecode.cpp
332 profiler/ProfilerBytecodeSequence.cpp
333 profiler/ProfilerBytecodes.cpp
334 profiler/ProfilerCompilation.cpp
335 profiler/ProfilerCompilationKind.cpp
336 profiler/ProfilerCompiledBytecode.cpp
337 profiler/ProfilerDatabase.cpp
338 profiler/ProfilerJettisonReason.cpp
339 profiler/ProfilerOSRExit.cpp
340 profiler/ProfilerOSRExitSite.cpp
341 profiler/ProfilerOrigin.cpp
342 profiler/ProfilerOriginStack.cpp
343 profiler/ProfilerProfiledBytecodes.cpp
344
345 runtime/ArgList.cpp
346 runtime/Arguments.cpp
347 runtime/ArgumentsIteratorConstructor.cpp
348 runtime/ArgumentsIteratorPrototype.cpp
349 runtime/ArrayBuffer.cpp
350 runtime/ArrayBufferNeuteringWatchpoint.cpp
351 runtime/ArrayBufferView.cpp
352 runtime/ArrayConstructor.cpp
353 runtime/ArrayIteratorConstructor.cpp
354 runtime/ArrayIteratorPrototype.cpp
355 runtime/ArrayPrototype.cpp
356 runtime/BooleanConstructor.cpp
357 runtime/BooleanObject.cpp
358 runtime/BooleanPrototype.cpp
359 runtime/CallData.cpp
360 runtime/CodeCache.cpp
361 runtime/CodeSpecializationKind.cpp
362 runtime/CommonIdentifiers.cpp
363 runtime/CommonSlowPaths.cpp
364 runtime/CommonSlowPathsExceptions.cpp
365 runtime/CompilationResult.cpp
366 runtime/Completion.cpp
367 runtime/ConsoleClient.cpp
368 runtime/ConsolePrototype.cpp
369 runtime/ConstructData.cpp
370 runtime/CustomGetterSetter.cpp
371 runtime/DataView.cpp
372 runtime/DataView.h
373 runtime/DateConstructor.cpp
374 runtime/DateConversion.cpp
375 runtime/DateInstance.cpp
376 runtime/DatePrototype.cpp
377 runtime/DumpContext.cpp
378 runtime/Error.cpp
379 runtime/ErrorConstructor.cpp
380 runtime/ErrorHandlingScope.cpp
381 runtime/ErrorInstance.cpp
382 runtime/ErrorPrototype.cpp
383 runtime/ExceptionHelpers.cpp
384 runtime/Executable.cpp
385 runtime/FunctionConstructor.cpp
386 runtime/FunctionExecutableDump.cpp
387 runtime/FunctionPrototype.cpp
388 runtime/GetterSetter.cpp
389 runtime/Identifier.cpp
390 runtime/IndexingType.cpp
391 runtime/InitializeThreading.cpp
392 runtime/IntendedStructureChain.cpp
393 runtime/InternalFunction.cpp
394 runtime/JSAPIValueWrapper.cpp
395 runtime/JSActivation.cpp
396 runtime/JSArgumentsIterator.cpp
397 runtime/JSArray.cpp
398 runtime/JSArrayBuffer.cpp
399 runtime/JSArrayBufferConstructor.cpp
400 runtime/JSArrayBufferPrototype.cpp
401 runtime/JSArrayBufferView.cpp
402 runtime/JSArrayIterator.cpp
403 runtime/JSBoundFunction.cpp
404 runtime/JSCJSValue.cpp
405 runtime/JSCell.cpp
406 runtime/JSConsole.cpp
407 runtime/JSDataView.cpp
408 runtime/JSDataViewPrototype.cpp
409 runtime/JSDateMath.cpp
410 runtime/JSFunction.cpp
411 runtime/JSGlobalObject.cpp
412 runtime/JSGlobalObjectFunctions.cpp
413 runtime/JSLock.cpp
414 runtime/JSMap.cpp
415 runtime/JSMapIterator.cpp
416 runtime/JSNameScope.cpp
417 runtime/JSNotAnObject.cpp
418 runtime/JSONObject.cpp
419 runtime/JSObject.cpp
420 runtime/JSPromise.cpp
421 runtime/JSPromiseConstructor.cpp
422 runtime/JSPromiseDeferred.cpp
423 runtime/JSPromiseFunctions.cpp
424 runtime/JSPromiseReaction.cpp
425 runtime/JSPromisePrototype.cpp
426 runtime/JSPropertyNameIterator.cpp
427 runtime/JSProxy.cpp
428 runtime/JSScope.cpp
429 runtime/JSSegmentedVariableObject.cpp
430 runtime/JSSet.cpp
431 runtime/JSSetIterator.cpp
432 runtime/JSString.cpp
433 runtime/JSStringJoiner.cpp
434 runtime/JSSymbolTableObject.cpp
435 runtime/JSTypedArrayConstructors.cpp
436 runtime/JSTypedArrayPrototypes.cpp
437 runtime/JSTypedArrays.cpp
438 runtime/JSVariableObject.cpp
439 runtime/JSWeakMap.cpp
440 runtime/JSWithScope.cpp
441 runtime/JSWrapperObject.cpp
442 runtime/LiteralParser.cpp
443 runtime/Lookup.cpp
444 runtime/MapConstructor.cpp
445 runtime/MapData.cpp
446 runtime/MapIteratorConstructor.cpp
447 runtime/MapIteratorPrototype.cpp
448 runtime/MapPrototype.cpp
449 runtime/MathObject.cpp
450 runtime/MemoryStatistics.cpp
451 runtime/NameConstructor.cpp
452 runtime/NameInstance.cpp
453 runtime/NamePrototype.cpp
454 runtime/NativeErrorConstructor.cpp
455 runtime/NativeErrorPrototype.cpp
456 runtime/NumberConstructor.cpp
457 runtime/NumberObject.cpp
458 runtime/NumberPrototype.cpp
459 runtime/ObjectConstructor.cpp
460 runtime/ObjectPrototype.cpp
461 runtime/Operations.cpp
462 runtime/Options.cpp
463 runtime/PropertyDescriptor.cpp
464 runtime/PropertyNameArray.cpp
465 runtime/PropertySlot.cpp
466 runtime/PropertyTable.cpp
467 runtime/PrototypeMap.cpp
468 runtime/RegExp.cpp
469 runtime/RegExpCache.cpp
470 runtime/RegExpCachedResult.cpp
471 runtime/RegExpConstructor.cpp
472 runtime/RegExpMatchesArray.cpp
473 runtime/RegExpObject.cpp
474 runtime/RegExpPrototype.cpp
475 runtime/SamplingCounter.cpp
476 runtime/SetConstructor.cpp
477 runtime/SetIteratorConstructor.cpp
478 runtime/SetIteratorPrototype.cpp
479 runtime/SetPrototype.cpp
480 runtime/SimpleTypedArrayController.cpp
481 runtime/SmallStrings.cpp
482 runtime/SparseArrayValueMap.cpp
483 runtime/StrictEvalActivation.cpp
484 runtime/StringConstructor.cpp
485 runtime/StringObject.cpp
486 runtime/StringPrototype.cpp
487 runtime/StringRecursionChecker.cpp
488 runtime/Structure.cpp
489 runtime/StructureChain.cpp
490 runtime/StructureIDTable.cpp
491 runtime/StructureRareData.cpp
492 runtime/SymbolTable.cpp
493 runtime/TestRunnerUtils.cpp
494 runtime/TypedArrayController.cpp
495 runtime/TypedArrayType.cpp
496 runtime/VM.cpp
497 runtime/VMEntryScope.cpp
498 runtime/Watchdog.cpp
499 runtime/WatchdogNone.cpp
500 runtime/WeakMapConstructor.cpp
501 runtime/WeakMapData.cpp
502 runtime/WeakMapPrototype.cpp
503
504 tools/CodeProfile.cpp
505 tools/CodeProfiling.cpp
506
507 yarr/RegularExpression.cpp
508 yarr/YarrCanonicalizeUCS2.cpp
509 yarr/YarrInterpreter.cpp
510 yarr/YarrJIT.cpp
511 yarr/YarrPattern.cpp
512 yarr/YarrSyntaxChecker.cpp
513 )
514
515 set(JavaScriptCore_LUT_FILES
516 runtime/ArrayConstructor.cpp
517 runtime/ArrayPrototype.cpp
518 runtime/BooleanPrototype.cpp
519 runtime/DateConstructor.cpp
520 runtime/DatePrototype.cpp
521 runtime/ErrorPrototype.cpp
522 runtime/JSDataViewPrototype.cpp
523 runtime/JSGlobalObject.cpp
524 runtime/JSONObject.cpp
525 runtime/JSPromiseConstructor.cpp
526 runtime/JSPromisePrototype.cpp
527 runtime/NamePrototype.cpp
528 runtime/NumberConstructor.cpp
529 runtime/NumberPrototype.cpp
530 runtime/ObjectConstructor.cpp
531 runtime/RegExpConstructor.cpp
532 runtime/RegExpObject.cpp
533 runtime/RegExpPrototype.cpp
534 runtime/StringConstructor.cpp
535 )
536
537 set(JavaScriptCore_LIBRARIES
538 WTF
539 ${ICU_I18N_LIBRARIES}
540 )
541
542 if (WTF_USE_UDIS86)
543 set(UDIS_GEN_DEP
544 disassembler/udis86/ud_opcode.py
545 disassembler/udis86/ud_optable.py
546 )
547
548 add_custom_command(
549 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.c ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
550 DEPENDS ${UDIS_GEN_DEP}
551 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
552 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/disassembler/udis86/itab.py ${JAVASCRIPTCORE_DIR}/disassembler/udis86/optable.xml
553 VERBATIM)
554
555 list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
556 ${JAVASCRIPTCORE_DIR}/disassembler/udis86
557 )
558 list(APPEND JavaScriptCore_HEADERS
559 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
560 )
561 list(APPEND JavaScriptCore_SOURCES
562 disassembler/udis86/udis86.c
563 disassembler/udis86/udis86_decode.c
564 disassembler/udis86/udis86_input.c
565 disassembler/udis86/udis86_itab_holder.c
566 disassembler/udis86/udis86_syn-att.c
567 disassembler/udis86/udis86_syn-intel.c
568 disassembler/udis86/udis86_syn.c
569 )
570 endif ()
571
572 # We cannot check for RUBY_FOUND because it is set only when the full package is installed and
573 # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
574 # for finding the only Ruby interpreter.
575 if (NOT RUBY_EXECUTABLE)
576 message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.")
577 endif ()
578
579 set(LLINT_ASM
580 llint/LowLevelInterpreter.asm
581 llint/LowLevelInterpreter32_64.asm
582 llint/LowLevelInterpreter64.asm
583 )
584
585 set(OFFLINE_ASM
586 offlineasm/arm.rb
587 offlineasm/ast.rb
588 offlineasm/backends.rb
589 offlineasm/cloop.rb
590 offlineasm/config.rb
591 offlineasm/instructions.rb
592 offlineasm/offsets.rb
593 offlineasm/opt.rb
594 offlineasm/parser.rb
595 offlineasm/registers.rb
596 offlineasm/risc.rb
597 offlineasm/self_hash.rb
598 offlineasm/settings.rb
599 offlineasm/transform.rb
600 offlineasm/x86.rb
601 )
602
603 add_custom_command(
604 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
605 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
606 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
607 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
608 VERBATIM)
609
610 add_custom_command(
611 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
612 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
613 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
614 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
615 VERBATIM)
616
617 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
618 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
619 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
620 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
621 # changed the command will always be called because the mtime of the .h files will
622 # always be older than that of their dependencies.
623 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
624 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
625 # actually be run multiple times!
626 add_executable(LLIntOffsetsExtractor
627 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
628 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
629 )
630 target_link_libraries(LLIntOffsetsExtractor WTF)
631
632 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
633 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
634 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
635 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
636 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
637 # after every asm.rb run.
638 add_custom_command(
639 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
640 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
641 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
642 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
643 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
644 VERBATIM)
645
646 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
647 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
648 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
649 # since it is used in the add_library() call at the end of this file.
650 list(APPEND JavaScriptCore_HEADERS
651 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
652 )
653 list(APPEND JavaScriptCore_SOURCES
654 llint/LLIntCLoop.cpp
655 llint/LLIntData.cpp
656 llint/LLIntEntrypoint.cpp
657 llint/LLIntExceptions.cpp
658 llint/LLIntSlowPaths.cpp
659 llint/LLIntThunks.cpp
660 llint/LowLevelInterpreter.cpp
661 )
662
663
664 if (ENABLE_FTL_JIT)
665 if (NOT LLVM_STATIC_LIBRARIES)
666 message(FATAL_ERROR "No LLVM libs found, but FTL is enabled. Stopping build.")
667 endif ()
668
669 # Configure llvmForJSC.so
670 set(llvmForJSC_SOURCES
671 llvm/library/LLVMAnchor.cpp
672 llvm/library/LLVMExports.cpp
673 llvm/library/LLVMOverrides.cpp
674 )
675 set(llvmForJSC_INCLUDE_DIRECTORIES
676 ${LLVM_INCLUDE_DIRS}
677 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
678 )
679
680 add_custom_command(
681 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
682 DEPENDS ${LLVM_STATIC_LIBRARIES}
683 COMMAND ${CMAKE_COMMAND} -E touch ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
684 VERBATIM)
685
686 WEBKIT_WRAP_SOURCELIST(${llvmForJSC_SOURCES})
687 add_library(llvmForJSC SHARED ${llvmForJSC_SOURCES} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h)
688 target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} "pthread" "dl")
689
690 # Added extra items for JavaScriptCore
691 list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
692 ${LLVM_INCLUDE_DIRS}
693 ${LIBCXXABI_INCLUDE_DIRS}
694 )
695
696 list(APPEND JavaScriptCore_SOURCES
697 dfg/DFGToFTLDeferredCompilationCallback.cpp
698 dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp
699
700 disassembler/LLVMDisassembler.cpp
701 disassembler/X86Disassembler.cpp
702
703 ftl/FTLAbstractHeap.cpp
704 ftl/FTLAbstractHeapRepository.cpp
705 ftl/FTLAvailableRecovery.cpp
706 ftl/FTLCapabilities.cpp
707 ftl/FTLCommonValues.cpp
708 ftl/FTLCompile.cpp
709 ftl/FTLDWARFDebugLineInfo.cpp
710 ftl/FTLDWARFRegister.cpp
711 ftl/FTLDataSection.cpp
712 ftl/FTLExitArgument.cpp
713 ftl/FTLExitArgumentForOperand.cpp
714 ftl/FTLExitThunkGenerator.cpp
715 ftl/FTLExitValue.cpp
716 ftl/FTLFail.cpp
717 ftl/FTLForOSREntryJITCode.cpp
718 ftl/FTLInlineCacheSize.cpp
719 ftl/FTLIntrinsicRepository.cpp
720 ftl/FTLJITCode.cpp
721 ftl/FTLJITFinalizer.cpp
722 ftl/FTLJSCall.cpp
723 ftl/FTLLink.cpp
724 ftl/FTLLocation.cpp
725 ftl/FTLLowerDFGToLLVM.cpp
726 ftl/FTLOSREntry.cpp
727 ftl/FTLOSRExitCompiler.cpp
728 ftl/FTLOSRExit.cpp
729 ftl/FTLOutput.cpp
730 ftl/FTLRecoveryOpcode.cpp
731 ftl/FTLRegisterAtOffset.cpp
732 ftl/FTLSaveRestore.cpp
733 ftl/FTLSlowPathCall.cpp
734 ftl/FTLSlowPathCallKey.cpp
735 ftl/FTLStackMaps.cpp
736 ftl/FTLState.cpp
737 ftl/FTLThunks.cpp
738 ftl/FTLUnwindInfo.cpp
739 ftl/FTLValueFormat.cpp
740 ftl/FTLValueRange.cpp
741
742 llvm/InitializeLLVM.cpp
743 llvm/InitializeLLVMLinux.cpp
744 llvm/InitializeLLVMPOSIX.cpp
745 llvm/LLVMAPI.cpp
746 )
747 endif ()
748
749 set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
750 macro(GENERATE_HASH_LUT _input _output)
751 add_custom_command(
752 OUTPUT ${_output}
753 DEPENDS ${HASH_LUT_GENERATOR} ${_input} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
754 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
755 VERBATIM)
756 list(APPEND JavaScriptCore_HEADERS ${_output})
757 endmacro()
758
759 # GENERATOR 1-A: LUT creator
760 foreach (_file ${JavaScriptCore_LUT_FILES})
761 get_filename_component(_name ${_file} NAME_WE)
762 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
763 endforeach ()
764
765 set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
766 assembler
767 bindings
768 bytecode
769 debugger
770 heap
771 inspector
772 inspector/agents
773 interpreter
774 jit
775 llint
776 parser
777 profiler
778 runtime
779 yarr
780
781 collector/handles
782 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
783 )
784
785 set(JavaScriptCore_FORWARDING_HEADERS_FILES
786 API/APICast.h
787 API/JSBase.h
788 API/JSCTestRunnerUtils.h
789 API/JSContextRef.h
790 API/JSContextRefPrivate.h
791 API/JSObjectRef.h
792 API/JSObjectRefPrivate.h
793 API/JSRetainPtr.h
794 API/JSScriptRefPrivate.h
795 API/JSStringRef.h
796 API/JSStringRefBSTR.h
797 API/JSStringRefCF.h
798 API/JSValueRef.h
799 API/JSWeakObjectMapRefInternal.h
800 API/JSWeakObjectMapRefPrivate.h
801 API/JavaScript.h
802 API/JavaScriptCore.h
803 API/OpaqueJSString.h
804 API/WebKitAvailability.h
805
806 assembler/LinkBuffer.h
807 assembler/MacroAssembler.h
808 assembler/MacroAssemblerCodeRef.h
809 assembler/MacroAssemblerCodeRef.h
810 jit/GPRInfo.h
811 runtime/VM.h
812
813 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
814 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h
815 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
816 )
817
818
819 # GENERATOR 1-B: particular LUT creator (for 1 file only)
820 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
821
822 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
823 add_custom_command(
824 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
825 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables
826 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
827 VERBATIM)
828 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
829
830
831 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
832 add_custom_command(
833 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
834 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
835 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
836 VERBATIM)
837 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
838
839
840 # Inspector Interfaces
841
842 set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
843
844 set(JavaScriptCore_INSPECTOR_DOMAINS
845 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json
846 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Debugger.json
847 ${JAVASCRIPTCORE_DIR}/inspector/protocol/GenericTypes.json
848 ${JAVASCRIPTCORE_DIR}/inspector/protocol/InspectorDomain.json
849 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Profiler.json
850 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Runtime.json
851 )
852
853 add_custom_command(
854 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
855 MAIN_DEPENDENCY ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py
856 DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
857 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
858 VERBATIM)
859
860 # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
861 add_custom_command(
862 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.cpp
863 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h
864 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.cpp
865 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h
866 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.cpp
867 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h
868 ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol/InspectorJSBackendCommands.js
869 MAIN_DEPENDENCY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
870 DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspector.py
871 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspectorStrings.py
872 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspector.py ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json --output_h_dir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" --output_cpp_dir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" --output_js_dir "${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol" --output_type JavaScript --write_always && mkdir -p ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector && cp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector
873 VERBATIM)
874
875 # JSCBuiltins
876 file(GLOB JSCBuiltins_js_files "${CMAKE_CURRENT_SOURCE_DIR}/builtins/*.js")
877 add_custom_command(
878 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
879 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
880 DEPENDS ${JSCBuiltins_js_files}
881 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins ${JSCBuiltins_js_files} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
882 VERBATIM)
883
884 list(APPEND JavaScriptCore_SOURCES
885 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.cpp
886 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.cpp
887 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.cpp
888 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
889 )
890
891 list(APPEND JavaScriptCore_HEADERS
892 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h
893 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h
894 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h
895 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
896 )
897
898 add_custom_command(
899 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
900 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
901 DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
902 COMMAND echo "//# sourceURL=__WebInspectorInjectedScript__" > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
903 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
904 COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
905 VERBATIM)
906
907 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
908
909 # Web Replay inputs generator
910 if (ENABLE_WEB_REPLAY)
911 set(JavaScript_WEB_REPLAY_INPUTS ${CMAKE_CURRENT_SOURCE_DIR}/replay/JSInputs.json)
912 add_custom_command(
913 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
914 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py
915 DEPENDS ${JavaScript_WEB_REPLAY_INPUTS}
916 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py --outputDir ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ --framework JavaScriptCore ${JavaScript_WEB_REPLAY_INPUTS}
917 VERBATIM)
918
919 list(APPEND JavaScriptCore_SOURCES
920 replay/EncodedValue.cpp
921 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
922 )
923 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h)
924 endif ()
925
926 if (WTF_CPU_ARM)
927 list(APPEND JavaScriptCore_SOURCES
928 assembler/ARMAssembler.cpp
929 assembler/ARMv7Assembler.cpp
930 assembler/MacroAssemblerARM.cpp
931 )
932 if (MSVC AND ENABLE_JIT)
933 add_custom_command(
934 OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
935 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_jit_stubs
936 DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubsARM.h
937 DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp
938 COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_jit_stubs --prefix=MSVC --header ${JAVASCRIPTCORE_DIR}/jit/JITStubsARM.h ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp > ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
939 VERBATIM)
940
941 add_custom_command(
942 OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
943 MAIN_DEPENDENCY ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
944 COMMAND armasm -nologo ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
945 VERBATIM)
946
947 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj)
948 endif ()
949 elseif (WTF_CPU_MIPS)
950 elseif (WTF_CPU_SH4)
951 elseif (WTF_CPU_X86)
952 list(APPEND JavaScriptCore_SOURCES
953 assembler/MacroAssemblerX86Common.cpp
954 )
955 elseif (WTF_CPU_X86_64)
956 if (MSVC AND ENABLE_JIT)
957 add_custom_command(
958 OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
959 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
960 COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
961 VERBATIM)
962
963 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
964 endif ()
965 list(APPEND JavaScriptCore_SOURCES
966 assembler/MacroAssemblerX86Common.cpp
967 )
968 else ()
969 message(FATAL_ERROR "Unknown CPU")
970 endif ()
971
972
973 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
974
975 WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${JavaScriptCore_FORWARDING_HEADERS_FILES})
976
977
978 add_subdirectory(shell)
979
980 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
981 include_directories(${JavaScriptCore_INCLUDE_DIRECTORIES})
982 add_definitions(-DSTATICALLY_LINKED_WITH_WTF)
983 add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
984 target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
985 set_target_properties(JavaScriptCore PROPERTIES COMPILE_DEFINITIONS "BUILDING_JavaScriptCore")
986 set_target_properties(JavaScriptCore PROPERTIES FOLDER "JavaScriptCore")
987 set_target_properties(JavaScriptCore PROPERTIES LINK_INTERFACE_LIBRARIES "")
988
989 if (JavaScriptCore_OUTPUT_NAME)
990 set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME ${JavaScriptCore_OUTPUT_NAME})
991 endif ()
992
993 if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
994 POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
995 set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
996 install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
997 endif ()
998
999 if (ENABLE_FTL_JIT)
1000 add_dependencies(JavaScriptCore llvmForJSC)
1001 endif ()