]> git.saurik.com Git - apple/javascriptcore.git/blob - CMakeLists.txt
JavaScriptCore-7601.1.46.3.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}/inspector/augmentable"
19 "${JAVASCRIPTCORE_DIR}/inspector/remote"
20 "${JAVASCRIPTCORE_DIR}/interpreter"
21 "${JAVASCRIPTCORE_DIR}/jit"
22 "${JAVASCRIPTCORE_DIR}/llint"
23 "${JAVASCRIPTCORE_DIR}/llvm"
24 "${JAVASCRIPTCORE_DIR}/parser"
25 "${JAVASCRIPTCORE_DIR}/profiler"
26 "${JAVASCRIPTCORE_DIR}/replay"
27 "${JAVASCRIPTCORE_DIR}/runtime"
28 "${JAVASCRIPTCORE_DIR}/tools"
29 "${JAVASCRIPTCORE_DIR}/yarr"
30 "${WTF_DIR}"
31 "${DERIVED_SOURCES_DIR}"
32 "${DERIVED_SOURCES_DIR}/ForwardingHeaders"
33 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
34 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector"
35 "${CMAKE_SOURCE_DIR}/Source"
36 )
37
38 set(JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
39 "${ICU_INCLUDE_DIRS}"
40 )
41
42 set(JavaScriptCore_SOURCES
43 API/JSBase.cpp
44 API/JSCTestRunnerUtils.cpp
45 API/JSCallbackConstructor.cpp
46 API/JSCallbackFunction.cpp
47 API/JSCallbackObject.cpp
48 API/JSClassRef.cpp
49 API/JSContextRef.cpp
50 API/JSObjectRef.cpp
51 API/JSProfilerPrivate.cpp
52 API/JSScriptRef.cpp
53 API/JSStringRef.cpp
54 API/JSValueRef.cpp
55 API/JSWeakObjectMapRefPrivate.cpp
56 API/OpaqueJSString.cpp
57
58 assembler/ARMAssembler.cpp
59 assembler/LinkBuffer.cpp
60 assembler/MacroAssembler.cpp
61 assembler/MacroAssemblerARM.cpp
62 assembler/MacroAssemblerARMv7.cpp
63 assembler/MacroAssemblerX86Common.cpp
64
65 bindings/ScriptFunctionCall.cpp
66 bindings/ScriptObject.cpp
67 bindings/ScriptValue.cpp
68
69 builtins/BuiltinExecutables.cpp
70
71 bytecode/ArrayAllocationProfile.cpp
72 bytecode/ArrayProfile.cpp
73 bytecode/BytecodeBasicBlock.cpp
74 bytecode/BytecodeIntrinsicRegistry.cpp
75 bytecode/BytecodeLivenessAnalysis.cpp
76 bytecode/CallEdge.cpp
77 bytecode/CallLinkInfo.cpp
78 bytecode/CallLinkStatus.cpp
79 bytecode/CallVariant.cpp
80 bytecode/CodeBlock.cpp
81 bytecode/CodeBlockHash.cpp
82 bytecode/CodeBlockJettisoningWatchpoint.cpp
83 bytecode/CodeOrigin.cpp
84 bytecode/CodeType.cpp
85 bytecode/ComplexGetStatus.cpp
86 bytecode/ConstantStructureCheck.cpp
87 bytecode/DFGExitProfile.cpp
88 bytecode/DeferredCompilationCallback.cpp
89 bytecode/DeferredSourceDump.cpp
90 bytecode/ExecutionCounter.cpp
91 bytecode/ExitKind.cpp
92 bytecode/ExitingJITType.cpp
93 bytecode/GetByIdStatus.cpp
94 bytecode/GetByIdVariant.cpp
95 bytecode/InlineCallFrameSet.cpp
96 bytecode/JumpTable.cpp
97 bytecode/LazyOperandValueProfile.cpp
98 bytecode/MethodOfGettingAValueProfile.cpp
99 bytecode/Opcode.cpp
100 bytecode/PolymorphicGetByIdList.cpp
101 bytecode/PolymorphicPutByIdList.cpp
102 bytecode/PreciseJumpTargets.cpp
103 bytecode/PutByIdStatus.cpp
104 bytecode/PutByIdVariant.cpp
105 bytecode/ReduceWhitespace.cpp
106 bytecode/SamplingTool.cpp
107 bytecode/SpecialPointer.cpp
108 bytecode/SpeculatedType.cpp
109 bytecode/StructureSet.cpp
110 bytecode/StructureStubClearingWatchpoint.cpp
111 bytecode/StructureStubInfo.cpp
112 bytecode/ToThisStatus.cpp
113 bytecode/TrackedReferences.cpp
114 bytecode/UnlinkedCodeBlock.cpp
115 bytecode/UnlinkedInstructionStream.cpp
116 bytecode/ValueRecovery.cpp
117 bytecode/VariableWriteFireDetail.cpp
118 bytecode/VirtualRegister.cpp
119 bytecode/Watchpoint.cpp
120
121 bytecompiler/BytecodeGenerator.cpp
122 bytecompiler/NodesCodegen.cpp
123
124 debugger/Debugger.cpp
125 debugger/DebuggerCallFrame.cpp
126 debugger/DebuggerScope.cpp
127
128 dfg/DFGAbstractHeap.cpp
129 dfg/DFGAbstractValue.cpp
130 dfg/DFGArgumentsEliminationPhase.cpp
131 dfg/DFGArgumentsUtilities.cpp
132 dfg/DFGArithMode.cpp
133 dfg/DFGArrayMode.cpp
134 dfg/DFGAtTailAbstractState.cpp
135 dfg/DFGAvailability.cpp
136 dfg/DFGAvailabilityMap.cpp
137 dfg/DFGBackwardsPropagationPhase.cpp
138 dfg/DFGBasicBlock.cpp
139 dfg/DFGBlockInsertionSet.cpp
140 dfg/DFGBlockSet.cpp
141 dfg/DFGBlockWorklist.cpp
142 dfg/DFGByteCodeParser.cpp
143 dfg/DFGCFAPhase.cpp
144 dfg/DFGCFGSimplificationPhase.cpp
145 dfg/DFGCPSRethreadingPhase.cpp
146 dfg/DFGCSEPhase.cpp
147 dfg/DFGCapabilities.cpp
148 dfg/DFGCleanUpPhase.cpp
149 dfg/DFGClobberSet.cpp
150 dfg/DFGClobberize.cpp
151 dfg/DFGCombinedLiveness.cpp
152 dfg/DFGCommon.cpp
153 dfg/DFGCommonData.cpp
154 dfg/DFGCompilationKey.cpp
155 dfg/DFGCompilationMode.cpp
156 dfg/DFGConstantFoldingPhase.cpp
157 dfg/DFGConstantHoistingPhase.cpp
158 dfg/DFGCriticalEdgeBreakingPhase.cpp
159 dfg/DFGDCEPhase.cpp
160 dfg/DFGDesiredIdentifiers.cpp
161 dfg/DFGDesiredTransitions.cpp
162 dfg/DFGDesiredWatchpoints.cpp
163 dfg/DFGDesiredWeakReferences.cpp
164 dfg/DFGDesiredWriteBarriers.cpp
165 dfg/DFGDisassembler.cpp
166 dfg/DFGDoesGC.cpp
167 dfg/DFGDominators.cpp
168 dfg/DFGDriver.cpp
169 dfg/DFGEdge.cpp
170 dfg/DFGEpoch.cpp
171 dfg/DFGFailedFinalizer.cpp
172 dfg/DFGFinalizer.cpp
173 dfg/DFGFixupPhase.cpp
174 dfg/DFGFlushFormat.cpp
175 dfg/DFGFlushedAt.cpp
176 dfg/DFGFrozenValue.cpp
177 dfg/DFGFunctionWhitelist.cpp
178 dfg/DFGGraph.cpp
179 dfg/DFGGraphSafepoint.cpp
180 dfg/DFGHeapLocation.cpp
181 dfg/DFGInPlaceAbstractState.cpp
182 dfg/DFGInsertOSRHintsForUpdate.cpp
183 dfg/DFGIntegerCheckCombiningPhase.cpp
184 dfg/DFGIntegerRangeOptimizationPhase.cpp
185 dfg/DFGInvalidationPointInjectionPhase.cpp
186 dfg/DFGJITCode.cpp
187 dfg/DFGJITCompiler.cpp
188 dfg/DFGJITFinalizer.cpp
189 dfg/DFGJumpReplacement.cpp
190 dfg/DFGLICMPhase.cpp
191 dfg/DFGLazyJSValue.cpp
192 dfg/DFGLazyNode.cpp
193 dfg/DFGLivenessAnalysisPhase.cpp
194 dfg/DFGLongLivedState.cpp
195 dfg/DFGLoopPreHeaderCreationPhase.cpp
196 dfg/DFGMayExit.cpp
197 dfg/DFGMinifiedGraph.cpp
198 dfg/DFGMinifiedNode.cpp
199 dfg/DFGMovHintRemovalPhase.cpp
200 dfg/DFGNaiveDominators.cpp
201 dfg/DFGNaturalLoops.cpp
202 dfg/DFGNode.cpp
203 dfg/DFGNodeFlags.cpp
204 dfg/DFGOSRAvailabilityAnalysisPhase.cpp
205 dfg/DFGOSREntry.cpp
206 dfg/DFGOSREntrypointCreationPhase.cpp
207 dfg/DFGOSRExit.cpp
208 dfg/DFGOSRExitBase.cpp
209 dfg/DFGOSRExitCompiler.cpp
210 dfg/DFGOSRExitCompiler32_64.cpp
211 dfg/DFGOSRExitCompiler64.cpp
212 dfg/DFGOSRExitCompilerCommon.cpp
213 dfg/DFGOSRExitFuzz.cpp
214 dfg/DFGOSRExitJumpPlaceholder.cpp
215 dfg/DFGOSRExitPreparation.cpp
216 dfg/DFGObjectAllocationSinkingPhase.cpp
217 dfg/DFGObjectMaterializationData.cpp
218 dfg/DFGOperations.cpp
219 dfg/DFGPhantomInsertionPhase.cpp
220 dfg/DFGPhase.cpp
221 dfg/DFGPhiChildren.cpp
222 dfg/DFGPlan.cpp
223 dfg/DFGPrePostNumbering.cpp
224 dfg/DFGPredictionInjectionPhase.cpp
225 dfg/DFGPredictionPropagationPhase.cpp
226 dfg/DFGPromotedHeapLocation.cpp
227 dfg/DFGPureValue.cpp
228 dfg/DFGPutStackSinkingPhase.cpp
229 dfg/DFGSSACalculator.cpp
230 dfg/DFGSSAConversionPhase.cpp
231 dfg/DFGSSALoweringPhase.cpp
232 dfg/DFGSafepoint.cpp
233 dfg/DFGSpeculativeJIT.cpp
234 dfg/DFGSpeculativeJIT32_64.cpp
235 dfg/DFGSpeculativeJIT64.cpp
236 dfg/DFGStackLayoutPhase.cpp
237 dfg/DFGStaticExecutionCountEstimationPhase.cpp
238 dfg/DFGStoreBarrierInsertionPhase.cpp
239 dfg/DFGStrengthReductionPhase.cpp
240 dfg/DFGStructureAbstractValue.cpp
241 dfg/DFGStructureRegistrationPhase.cpp
242 dfg/DFGThreadData.cpp
243 dfg/DFGThunks.cpp
244 dfg/DFGTierUpCheckInjectionPhase.cpp
245 dfg/DFGTransition.cpp
246 dfg/DFGTypeCheckHoistingPhase.cpp
247 dfg/DFGUnificationPhase.cpp
248 dfg/DFGUseKind.cpp
249 dfg/DFGValidate.cpp
250 dfg/DFGValueSource.cpp
251 dfg/DFGValueStrength.cpp
252 dfg/DFGVarargsForwardingPhase.cpp
253 dfg/DFGVariableAccessData.cpp
254 dfg/DFGVariableAccessDataDump.cpp
255 dfg/DFGVariableEvent.cpp
256 dfg/DFGVariableEventStream.cpp
257 dfg/DFGVirtualRegisterAllocationPhase.cpp
258 dfg/DFGWatchpointCollectionPhase.cpp
259 dfg/DFGWorklist.cpp
260
261 disassembler/ARM64Disassembler.cpp
262 disassembler/ARMv7Disassembler.cpp
263 disassembler/Disassembler.cpp
264 disassembler/LLVMDisassembler.cpp
265 disassembler/X86Disassembler.cpp
266
267 disassembler/ARM64/A64DOpcode.cpp
268
269 disassembler/ARMv7/ARMv7DOpcode.cpp
270
271 heap/CodeBlockSet.cpp
272 heap/ConservativeRoots.cpp
273 heap/CopiedSpace.cpp
274 heap/CopyVisitor.cpp
275 heap/DeferGC.cpp
276 heap/EdenGCActivityCallback.cpp
277 heap/FullGCActivityCallback.cpp
278 heap/GCActivityCallback.cpp
279 heap/GCLogging.cpp
280 heap/GCThread.cpp
281 heap/GCThreadSharedData.cpp
282 heap/HandleSet.cpp
283 heap/HandleStack.cpp
284 heap/Heap.cpp
285 heap/HeapStatistics.cpp
286 heap/HeapTimer.cpp
287 heap/HeapVerifier.cpp
288 heap/IncrementalSweeper.cpp
289 heap/JITStubRoutineSet.cpp
290 heap/MachineStackMarker.cpp
291 heap/MarkStack.cpp
292 heap/MarkedAllocator.cpp
293 heap/MarkedBlock.cpp
294 heap/MarkedSpace.cpp
295 heap/SlotVisitor.cpp
296 heap/Weak.cpp
297 heap/WeakBlock.cpp
298 heap/WeakHandleOwner.cpp
299 heap/WeakSet.cpp
300 heap/WriteBarrierBuffer.cpp
301 heap/WriteBarrierSupport.cpp
302
303 inspector/ConsoleMessage.cpp
304 inspector/ContentSearchUtilities.cpp
305 inspector/EventLoop.cpp
306 inspector/IdentifiersFactory.cpp
307 inspector/InjectedScript.cpp
308 inspector/InjectedScriptBase.cpp
309 inspector/InjectedScriptHost.cpp
310 inspector/InjectedScriptManager.cpp
311 inspector/InjectedScriptModule.cpp
312 inspector/InspectorAgentRegistry.cpp
313 inspector/InspectorBackendDispatcher.cpp
314 inspector/InspectorValues.cpp
315 inspector/JSGlobalObjectConsoleClient.cpp
316 inspector/JSGlobalObjectInspectorController.cpp
317 inspector/JSGlobalObjectScriptDebugServer.cpp
318 inspector/JSInjectedScriptHost.cpp
319 inspector/JSInjectedScriptHostPrototype.cpp
320 inspector/JSJavaScriptCallFrame.cpp
321 inspector/JSJavaScriptCallFramePrototype.cpp
322 inspector/JavaScriptCallFrame.cpp
323 inspector/ScriptArguments.cpp
324 inspector/ScriptCallFrame.cpp
325 inspector/ScriptCallStack.cpp
326 inspector/ScriptCallStackFactory.cpp
327 inspector/ScriptDebugServer.cpp
328
329 inspector/agents/InspectorAgent.cpp
330 inspector/agents/InspectorConsoleAgent.cpp
331 inspector/agents/InspectorDebuggerAgent.cpp
332 inspector/agents/InspectorRuntimeAgent.cpp
333 inspector/agents/JSGlobalObjectConsoleAgent.cpp
334 inspector/agents/JSGlobalObjectDebuggerAgent.cpp
335 inspector/agents/JSGlobalObjectRuntimeAgent.cpp
336
337 interpreter/AbstractPC.cpp
338 interpreter/CallFrame.cpp
339 interpreter/Interpreter.cpp
340 interpreter/JSStack.cpp
341 interpreter/ProtoCallFrame.cpp
342 interpreter/StackVisitor.cpp
343
344 jit/AccessorCallJITStubRoutine.cpp
345 jit/ArityCheckFailReturnThunks.cpp
346 jit/AssemblyHelpers.cpp
347 jit/BinarySwitch.cpp
348 jit/ExecutableAllocationFuzz.cpp
349 jit/ExecutableAllocator.cpp
350 jit/ExecutableAllocatorFixedVMPool.cpp
351 jit/GCAwareJITStubRoutine.cpp
352 jit/HostCallReturnValue.cpp
353 jit/JIT.cpp
354 jit/JITArithmetic.cpp
355 jit/JITArithmetic32_64.cpp
356 jit/JITCall.cpp
357 jit/JITCall32_64.cpp
358 jit/JITCode.cpp
359 jit/JITDisassembler.cpp
360 jit/JITExceptions.cpp
361 jit/JITInlineCacheGenerator.cpp
362 jit/JITOpcodes.cpp
363 jit/JITOpcodes32_64.cpp
364 jit/JITOperations.cpp
365 jit/JITPropertyAccess.cpp
366 jit/JITPropertyAccess32_64.cpp
367 jit/JITStubRoutine.cpp
368 jit/JITStubs.cpp
369 jit/JITThunks.cpp
370 jit/JITToDFGDeferredCompilationCallback.cpp
371 jit/PolymorphicCallStubRoutine.cpp
372 jit/Reg.cpp
373 jit/RegisterPreservationWrapperGenerator.cpp
374 jit/RegisterSet.cpp
375 jit/Repatch.cpp
376 jit/ScratchRegisterAllocator.cpp
377 jit/SetupVarargsFrame.cpp
378 jit/TempRegisterSet.cpp
379 jit/ThunkGenerators.cpp
380
381 parser/Lexer.cpp
382 parser/Nodes.cpp
383 parser/Parser.cpp
384 parser/ParserArena.cpp
385 parser/SourceCode.cpp
386 parser/SourceProvider.cpp
387 parser/SourceProviderCache.cpp
388
389 profiler/LegacyProfiler.cpp
390 profiler/Profile.cpp
391 profiler/ProfileGenerator.cpp
392 profiler/ProfileNode.cpp
393 profiler/ProfilerBytecode.cpp
394 profiler/ProfilerBytecodeSequence.cpp
395 profiler/ProfilerBytecodes.cpp
396 profiler/ProfilerCompilation.cpp
397 profiler/ProfilerCompilationKind.cpp
398 profiler/ProfilerCompiledBytecode.cpp
399 profiler/ProfilerDatabase.cpp
400 profiler/ProfilerJettisonReason.cpp
401 profiler/ProfilerOSRExit.cpp
402 profiler/ProfilerOSRExitSite.cpp
403 profiler/ProfilerOrigin.cpp
404 profiler/ProfilerOriginStack.cpp
405 profiler/ProfilerProfiledBytecodes.cpp
406
407 tools/CodeProfile.cpp
408 tools/CodeProfiling.cpp
409 tools/FunctionOverrides.cpp
410 tools/JSDollarVM.cpp
411 tools/JSDollarVMPrototype.cpp
412
413 yarr/RegularExpression.cpp
414 yarr/YarrCanonicalizeUCS2.cpp
415 yarr/YarrInterpreter.cpp
416 yarr/YarrJIT.cpp
417 yarr/YarrPattern.cpp
418 yarr/YarrSyntaxChecker.cpp
419 )
420
421 set(JavaScriptCore_RUNTIME_SOURCES
422 runtime/ArgList.cpp
423 runtime/ArrayBuffer.cpp
424 runtime/ArrayBufferNeuteringWatchpoint.cpp
425 runtime/ArrayBufferView.cpp
426 runtime/ArrayConstructor.cpp
427 runtime/ArrayIteratorPrototype.cpp
428 runtime/ArrayPrototype.cpp
429 runtime/BasicBlockLocation.cpp
430 runtime/BooleanConstructor.cpp
431 runtime/BooleanObject.cpp
432 runtime/BooleanPrototype.cpp
433 runtime/BundlePath.cpp
434 runtime/CallData.cpp
435 runtime/ClonedArguments.cpp
436 runtime/CodeCache.cpp
437 runtime/CodeSpecializationKind.cpp
438 runtime/CommonIdentifiers.cpp
439 runtime/CommonSlowPaths.cpp
440 runtime/CommonSlowPathsExceptions.cpp
441 runtime/CompilationResult.cpp
442 runtime/Completion.cpp
443 runtime/ConsoleClient.cpp
444 runtime/ConsolePrototype.cpp
445 runtime/ConstantMode.cpp
446 runtime/ConstructData.cpp
447 runtime/ControlFlowProfiler.cpp
448 runtime/CustomGetterSetter.cpp
449 runtime/DataView.cpp
450 runtime/DateConstructor.cpp
451 runtime/DateConversion.cpp
452 runtime/DateInstance.cpp
453 runtime/DatePrototype.cpp
454 runtime/DirectArguments.cpp
455 runtime/DirectArgumentsOffset.cpp
456 runtime/DumpContext.cpp
457 runtime/Error.cpp
458 runtime/ErrorConstructor.cpp
459 runtime/ErrorHandlingScope.cpp
460 runtime/ErrorInstance.cpp
461 runtime/ErrorPrototype.cpp
462 runtime/Exception.cpp
463 runtime/ExceptionFuzz.cpp
464 runtime/ExceptionHelpers.cpp
465 runtime/Executable.cpp
466 runtime/FunctionConstructor.cpp
467 runtime/FunctionExecutableDump.cpp
468 runtime/FunctionHasExecutedCache.cpp
469 runtime/FunctionPrototype.cpp
470 runtime/FunctionRareData.cpp
471 runtime/GetterSetter.cpp
472 runtime/Identifier.cpp
473 runtime/IndexingType.cpp
474 runtime/InferredValue.cpp
475 runtime/InitializeThreading.cpp
476 runtime/IntendedStructureChain.cpp
477 runtime/InternalFunction.cpp
478 runtime/IntlObject.cpp
479 runtime/IteratorOperations.cpp
480 runtime/IteratorPrototype.cpp
481 runtime/JSAPIValueWrapper.cpp
482 runtime/JSArray.cpp
483 runtime/JSArrayBuffer.cpp
484 runtime/JSArrayBufferConstructor.cpp
485 runtime/JSArrayBufferPrototype.cpp
486 runtime/JSArrayBufferView.cpp
487 runtime/JSArrayIterator.cpp
488 runtime/JSBoundFunction.cpp
489 runtime/JSCJSValue.cpp
490 runtime/JSCallee.cpp
491 runtime/JSCatchScope.cpp
492 runtime/JSCell.cpp
493 runtime/JSConsole.cpp
494 runtime/JSDataView.cpp
495 runtime/JSDataViewPrototype.cpp
496 runtime/JSDateMath.cpp
497 runtime/JSEnvironmentRecord.cpp
498 runtime/JSFunction.cpp
499 runtime/JSFunctionNameScope.cpp
500 runtime/JSGlobalObject.cpp
501 runtime/JSGlobalObjectDebuggable.cpp
502 runtime/JSGlobalObjectFunctions.cpp
503 runtime/JSJob.cpp
504 runtime/JSLexicalEnvironment.cpp
505 runtime/JSLock.cpp
506 runtime/JSMap.cpp
507 runtime/JSMapIterator.cpp
508 runtime/JSNameScope.cpp
509 runtime/JSNotAnObject.cpp
510 runtime/JSONObject.cpp
511 runtime/JSObject.cpp
512 runtime/JSPromise.cpp
513 runtime/JSPromiseConstructor.cpp
514 runtime/JSPromiseDeferred.cpp
515 runtime/JSPromisePrototype.cpp
516 runtime/JSPropertyNameEnumerator.cpp
517 runtime/JSProxy.cpp
518 runtime/JSScope.cpp
519 runtime/JSSegmentedVariableObject.cpp
520 runtime/JSSet.cpp
521 runtime/JSSetIterator.cpp
522 runtime/JSString.cpp
523 runtime/JSStringIterator.cpp
524 runtime/JSStringJoiner.cpp
525 runtime/JSSymbolTableObject.cpp
526 runtime/JSTemplateRegistryKey.cpp
527 runtime/JSTypedArrayConstructors.cpp
528 runtime/JSTypedArrayPrototypes.cpp
529 runtime/JSTypedArrays.cpp
530 runtime/JSWeakMap.cpp
531 runtime/JSWeakSet.cpp
532 runtime/JSWithScope.cpp
533 runtime/JSWrapperObject.cpp
534 runtime/LiteralParser.cpp
535 runtime/Lookup.cpp
536 runtime/MapConstructor.cpp
537 runtime/MapIteratorPrototype.cpp
538 runtime/MapPrototype.cpp
539 runtime/MathCommon.cpp
540 runtime/MathObject.cpp
541 runtime/MemoryStatistics.cpp
542 runtime/NativeErrorConstructor.cpp
543 runtime/NativeErrorPrototype.cpp
544 runtime/NullGetterFunction.cpp
545 runtime/NullSetterFunction.cpp
546 runtime/NumberConstructor.cpp
547 runtime/NumberObject.cpp
548 runtime/NumberPrototype.cpp
549 runtime/ObjectConstructor.cpp
550 runtime/ObjectPrototype.cpp
551 runtime/Operations.cpp
552 runtime/Options.cpp
553 runtime/PropertyDescriptor.cpp
554 runtime/PropertySlot.cpp
555 runtime/PropertyTable.cpp
556 runtime/PrototypeMap.cpp
557 runtime/RegExp.cpp
558 runtime/RegExpCache.cpp
559 runtime/RegExpCachedResult.cpp
560 runtime/RegExpConstructor.cpp
561 runtime/RegExpMatchesArray.cpp
562 runtime/RegExpObject.cpp
563 runtime/RegExpPrototype.cpp
564 runtime/RuntimeType.cpp
565 runtime/SamplingCounter.cpp
566 runtime/ScopeOffset.cpp
567 runtime/ScopedArguments.cpp
568 runtime/ScopedArgumentsTable.cpp
569 runtime/SetConstructor.cpp
570 runtime/SetIteratorPrototype.cpp
571 runtime/SetPrototype.cpp
572 runtime/SimpleTypedArrayController.cpp
573 runtime/SmallStrings.cpp
574 runtime/SparseArrayValueMap.cpp
575 runtime/StrictEvalActivation.cpp
576 runtime/StringConstructor.cpp
577 runtime/StringIteratorPrototype.cpp
578 runtime/StringObject.cpp
579 runtime/StringPrototype.cpp
580 runtime/StringRecursionChecker.cpp
581 runtime/Structure.cpp
582 runtime/StructureChain.cpp
583 runtime/StructureIDTable.cpp
584 runtime/StructureRareData.cpp
585 runtime/Symbol.cpp
586 runtime/SymbolConstructor.cpp
587 runtime/SymbolObject.cpp
588 runtime/SymbolPrototype.cpp
589 runtime/SymbolTable.cpp
590 runtime/TemplateRegistry.cpp
591 runtime/TestRunnerUtils.cpp
592 runtime/TypeLocationCache.cpp
593 runtime/TypeProfiler.cpp
594 runtime/TypeProfilerLog.cpp
595 runtime/TypeSet.cpp
596 runtime/TypedArrayController.cpp
597 runtime/TypedArrayType.cpp
598 runtime/TypeofType.cpp
599 runtime/VM.cpp
600 runtime/VMEntryScope.cpp
601 runtime/VarOffset.cpp
602 runtime/Watchdog.cpp
603 runtime/WatchdogNone.cpp
604 runtime/WeakMapConstructor.cpp
605 runtime/WeakMapData.cpp
606 runtime/WeakMapPrototype.cpp
607 runtime/WeakSetConstructor.cpp
608 runtime/WeakSetPrototype.cpp
609 )
610
611 list(APPEND JavaScriptCore_SOURCES
612 ${JavaScriptCore_RUNTIME_SOURCES}
613 )
614
615 set(JavaScriptCore_LUT_FILES
616 runtime/ArrayConstructor.cpp
617 runtime/ArrayIteratorPrototype.cpp
618 runtime/BooleanPrototype.cpp
619 runtime/DateConstructor.cpp
620 runtime/DatePrototype.cpp
621 runtime/ErrorPrototype.cpp
622 runtime/JSDataViewPrototype.cpp
623 runtime/JSGlobalObject.cpp
624 runtime/JSONObject.cpp
625 runtime/JSPromiseConstructor.cpp
626 runtime/JSPromisePrototype.cpp
627 runtime/NumberConstructor.cpp
628 runtime/NumberPrototype.cpp
629 runtime/ObjectConstructor.cpp
630 runtime/RegExpConstructor.cpp
631 runtime/RegExpPrototype.cpp
632 runtime/StringConstructor.cpp
633 runtime/StringIteratorPrototype.cpp
634 runtime/SymbolConstructor.cpp
635 runtime/SymbolPrototype.cpp
636 )
637
638 set(JavaScriptCore_LIBRARIES
639 WTF
640 ${ICU_I18N_LIBRARIES}
641 )
642
643 if (USE_UDIS86)
644 set(UDIS_GEN_DEP
645 disassembler/udis86/ud_opcode.py
646 disassembler/udis86/ud_optable.py
647 )
648
649 add_custom_command(
650 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.c ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
651 DEPENDS ${UDIS_GEN_DEP}
652 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
653 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/disassembler/udis86/itab.py ${JAVASCRIPTCORE_DIR}/disassembler/udis86/optable.xml
654 VERBATIM)
655
656 list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
657 ${JAVASCRIPTCORE_DIR}/disassembler/udis86
658 )
659 list(APPEND JavaScriptCore_HEADERS
660 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
661 )
662 list(APPEND JavaScriptCore_SOURCES
663 disassembler/UDis86Disassembler.cpp
664
665 disassembler/udis86/udis86.c
666 disassembler/udis86/udis86_decode.c
667 disassembler/udis86/udis86_input.c
668 disassembler/udis86/udis86_itab_holder.c
669 disassembler/udis86/udis86_syn-att.c
670 disassembler/udis86/udis86_syn-intel.c
671 disassembler/udis86/udis86_syn.c
672 )
673 endif ()
674
675 set(LLINT_ASM
676 llint/LowLevelInterpreter.asm
677 llint/LowLevelInterpreter32_64.asm
678 llint/LowLevelInterpreter64.asm
679 )
680
681 set(OFFLINE_ASM
682 offlineasm/arm.rb
683 offlineasm/arm64.rb
684 offlineasm/ast.rb
685 offlineasm/backends.rb
686 offlineasm/cloop.rb
687 offlineasm/config.rb
688 offlineasm/instructions.rb
689 offlineasm/mips.rb
690 offlineasm/offsets.rb
691 offlineasm/opt.rb
692 offlineasm/parser.rb
693 offlineasm/registers.rb
694 offlineasm/risc.rb
695 offlineasm/self_hash.rb
696 offlineasm/settings.rb
697 offlineasm/sh4.rb
698 offlineasm/transform.rb
699 offlineasm/x86.rb
700 )
701
702 add_custom_command(
703 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
704 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
705 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
706 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
707 VERBATIM)
708
709 add_custom_command(
710 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
711 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
712 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
713 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
714 VERBATIM)
715
716 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
717 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
718 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
719 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
720 # changed the command will always be called because the mtime of the .h files will
721 # always be older than that of their dependencies.
722 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
723 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
724 # actually be run multiple times!
725 add_executable(LLIntOffsetsExtractor
726 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
727 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
728 )
729 target_link_libraries(LLIntOffsetsExtractor WTF)
730
731 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
732 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
733 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
734 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
735 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
736 # after every asm.rb run.
737 if (MSVC)
738 set(LLIntOutput LowLevelInterpreterWin.asm)
739 else ()
740 set(LLIntOutput LLIntAssembly.h)
741 endif ()
742
743 add_custom_command(
744 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
745 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
746 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
747 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}/${LLIntOutput}
748 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
749 VERBATIM)
750
751 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
752 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
753 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
754 # since it is used in the add_library() call at the end of this file.
755 if (MSVC)
756 enable_language(ASM_MASM)
757 list(APPEND JavaScriptCore_SOURCES
758 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
759 )
760 # Win32 needs /safeseh with assembly, but Win64 does not.
761 if (CMAKE_SIZEOF_VOID_P EQUAL 4)
762 set_source_files_properties(${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
763 PROPERTIES COMPILE_FLAGS "/safeseh"
764 )
765 endif ()
766 else ()
767 list(APPEND JavaScriptCore_HEADERS
768 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
769 )
770 endif ()
771
772 list(APPEND JavaScriptCore_SOURCES
773 llint/LLIntCLoop.cpp
774 llint/LLIntData.cpp
775 llint/LLIntEntrypoint.cpp
776 llint/LLIntExceptions.cpp
777 llint/LLIntSlowPaths.cpp
778 llint/LLIntThunks.cpp
779 llint/LowLevelInterpreter.cpp
780 )
781
782
783 if (ENABLE_FTL_JIT)
784 if (NOT LLVM_STATIC_LIBRARIES)
785 message(FATAL_ERROR "No LLVM libs found, but FTL is enabled. Stopping build.")
786 endif ()
787
788 # Configure llvmForJSC.so
789 set(llvmForJSC_SOURCES
790 llvm/library/LLVMAnchor.cpp
791 llvm/library/LLVMExports.cpp
792 llvm/library/LLVMOverrides.cpp
793 )
794 set(llvmForJSC_INCLUDE_DIRECTORIES
795 ${LLVM_INCLUDE_DIRS}
796 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
797 )
798
799 add_custom_command(
800 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
801 DEPENDS ${LLVM_STATIC_LIBRARIES}
802 COMMAND ${CMAKE_COMMAND} -E touch ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
803 VERBATIM)
804
805 if (ENABLE_FTL_NATIVE_CALL_INLINING)
806 function(JOIN VALUES GLUE OUTPUT)
807 string(REPLACE ";" "${GLUE}" _TMP_STR "${VALUES}")
808 set(${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
809 endfunction()
810
811 JOIN("${JavaScriptCore_INCLUDE_DIRECTORIES}" " -I" JSC_INCLUDES)
812
813 set(LLVM_BITCODE_FILES)
814
815 foreach (_file ${JavaScriptCore_RUNTIME_SOURCES})
816 get_filename_component(_name ${_file} NAME_WE)
817 add_custom_command(
818 OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runtime/${_name}.bc
819 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create-llvm-ir-from-source-file.py ${_file} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CLANG_EXE} "${JSC_INCLUDES}"
820 WORKING_DIRECTORY "${JAVASCRIPTCORE_DIR}"
821 VERBATIM)
822
823 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/ftl/FTLState.cpp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runtime/${_name}.bc)
824 list(APPEND LLVM_BITCODE_FILES
825 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/runtime/${_name}.bc
826 )
827 endforeach ()
828
829 get_filename_component(LLVM_BINS ${LLVM_CONFIG_EXE} PATH)
830
831 add_custom_command(
832 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InlineRuntimeSymbolTable.h
833 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create-symbol-table-index.py
834 DEPENDS ${LLVM_BITCODE_FILES}
835 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create-symbol-table-index.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${JAVASCRIPTCORE_DIR} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} ${LLVM_BINS}
836 WORKING_DIRECTORY "${JAVASCRIPTCORE_DIR}"
837 VERBATIM)
838
839 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/ftl/FTLState.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InlineRuntimeSymbolTable.h)
840 endif ()
841
842 WEBKIT_WRAP_SOURCELIST(${llvmForJSC_SOURCES})
843 add_library(llvmForJSC SHARED ${llvmForJSC_SOURCES} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h)
844 target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} "pthread" "dl" -Wl,--version-script=${JAVASCRIPTCORE_DIR}/llvm/library/libllvmForJSC.version)
845
846 # Added extra items for JavaScriptCore
847 list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
848 ${LLVM_INCLUDE_DIRS}
849 )
850
851 list(APPEND JavaScriptCore_SOURCES
852 dfg/DFGToFTLDeferredCompilationCallback.cpp
853 dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp
854
855 disassembler/LLVMDisassembler.cpp
856 disassembler/X86Disassembler.cpp
857
858 ftl/FTLAbstractHeap.cpp
859 ftl/FTLAbstractHeapRepository.cpp
860 ftl/FTLAvailableRecovery.cpp
861 ftl/FTLCapabilities.cpp
862 ftl/FTLCommonValues.cpp
863 ftl/FTLCompile.cpp
864 ftl/FTLDWARFDebugLineInfo.cpp
865 ftl/FTLDWARFRegister.cpp
866 ftl/FTLDataSection.cpp
867 ftl/FTLExitArgument.cpp
868 ftl/FTLExitArgumentForOperand.cpp
869 ftl/FTLExitPropertyValue.cpp
870 ftl/FTLExitThunkGenerator.cpp
871 ftl/FTLExitTimeObjectMaterialization.cpp
872 ftl/FTLExitValue.cpp
873 ftl/FTLFail.cpp
874 ftl/FTLForOSREntryJITCode.cpp
875 ftl/FTLInlineCacheSize.cpp
876 ftl/FTLIntrinsicRepository.cpp
877 ftl/FTLJITCode.cpp
878 ftl/FTLJITFinalizer.cpp
879 ftl/FTLJSCall.cpp
880 ftl/FTLJSCallBase.cpp
881 ftl/FTLJSCallVarargs.cpp
882 ftl/FTLLink.cpp
883 ftl/FTLLocation.cpp
884 ftl/FTLLowerDFGToLLVM.cpp
885 ftl/FTLOSREntry.cpp
886 ftl/FTLOSRExit.cpp
887 ftl/FTLOSRExitCompiler.cpp
888 ftl/FTLOperations.cpp
889 ftl/FTLOutput.cpp
890 ftl/FTLRecoveryOpcode.cpp
891 ftl/FTLRegisterAtOffset.cpp
892 ftl/FTLSaveRestore.cpp
893 ftl/FTLSlowPathCall.cpp
894 ftl/FTLSlowPathCallKey.cpp
895 ftl/FTLStackMaps.cpp
896 ftl/FTLState.cpp
897 ftl/FTLThunks.cpp
898 ftl/FTLUnwindInfo.cpp
899 ftl/FTLValueFormat.cpp
900 ftl/FTLValueRange.cpp
901
902 llvm/InitializeLLVM.cpp
903 llvm/InitializeLLVMLinux.cpp
904 llvm/InitializeLLVMPOSIX.cpp
905 llvm/LLVMAPI.cpp
906 )
907 endif ()
908
909 set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
910 macro(GENERATE_HASH_LUT _input _output)
911 add_custom_command(
912 OUTPUT ${_output}
913 DEPENDS ${HASH_LUT_GENERATOR} ${_input} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
914 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
915 VERBATIM)
916 list(APPEND JavaScriptCore_HEADERS ${_output})
917 endmacro()
918
919 # GENERATOR 1-A: LUT creator
920 foreach (_file ${JavaScriptCore_LUT_FILES})
921 get_filename_component(_name ${_file} NAME_WE)
922 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
923 endforeach ()
924
925 set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
926 assembler
927 bindings
928 bytecode
929 debugger
930 heap
931 inspector
932 interpreter
933 jit
934 llint
935 parser
936 profiler
937 runtime
938 yarr
939
940 collector/handles
941
942 inspector/agents
943 inspector/augmentable
944 inspector/remote
945
946 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
947 )
948
949 set(JavaScriptCore_FORWARDING_HEADERS_FILES
950 API/APICallbackFunction.h
951 API/APICast.h
952 API/JSAPIWrapperObject.h
953 API/JSBase.h
954 API/JSBasePrivate.h
955 API/JSCTestRunnerUtils.h
956 API/JSCallbackConstructor.h
957 API/JSCallbackFunction.h
958 API/JSCallbackObject.h
959 API/JSCallbackObjectFunctions.h
960 API/JSClassRef.h
961 API/JSContext.h
962 API/JSContextInternal.h
963 API/JSContextPrivate.h
964 API/JSContextRef.h
965 API/JSContextRefInternal.h
966 API/JSContextRefPrivate.h
967 API/JSExport.h
968 API/JSManagedValue.h
969 API/JSManagedValueInternal.h
970 API/JSObjectRef.h
971 API/JSObjectRefPrivate.h
972 API/JSProfilerPrivate.h
973 API/JSRetainPtr.h
974 API/JSScriptRefPrivate.h
975 API/JSStringRef.h
976 API/JSStringRefBSTR.h
977 API/JSStringRefCF.h
978 API/JSStringRefPrivate.h
979 API/JSValue.h
980 API/JSValueInternal.h
981 API/JSValueRef.h
982 API/JSVirtualMachine.h
983 API/JSVirtualMachineInternal.h
984 API/JSWeakObjectMapRefInternal.h
985 API/JSWeakObjectMapRefPrivate.h
986 API/JSWrapperMap.h
987 API/JavaScript.h
988 API/JavaScriptCore.h
989 API/ObjcRuntimeExtras.h
990 API/OpaqueJSString.h
991 API/WebKitAvailability.h
992
993 assembler/LinkBuffer.h
994 assembler/MacroAssembler.h
995 assembler/MacroAssemblerCodeRef.h
996
997 inspector/augmentable/AugmentableInspectorController.h
998
999 inspector/remote/RemoteInspector.h
1000 inspector/remote/RemoteInspectorConstants.h
1001 inspector/remote/RemoteInspectorDebuggable.h
1002 inspector/remote/RemoteInspectorDebuggableConnection.h
1003 inspector/remote/RemoteInspectorXPCConnection.h
1004
1005 jit/GPRInfo.h
1006
1007 runtime/VM.h
1008
1009 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1010 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h
1011 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
1012 )
1013
1014
1015 # GENERATOR 1-B: particular LUT creator (for 1 file only)
1016 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
1017
1018 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
1019 add_custom_command(
1020 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
1021 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables
1022 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
1023 VERBATIM)
1024 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
1025
1026
1027 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
1028 add_custom_command(
1029 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
1030 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
1031 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table
1032 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
1033 VERBATIM)
1034 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
1035
1036
1037 # Inspector Interfaces
1038
1039 set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
1040
1041 set(JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS
1042 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py
1043 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator.py
1044 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py
1045 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_js_backend_commands.py
1046 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py
1047 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py
1048 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_header.py
1049 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_implementation.py
1050 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py
1051 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py
1052 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator.py
1053 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator_templates.py
1054 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/__init__.py
1055 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/models.py
1056 )
1057
1058 set(JavaScriptCore_INSPECTOR_DOMAINS
1059 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ApplicationCache.json
1060 ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json
1061 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json
1062 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOM.json
1063 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMDebugger.json
1064 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMStorage.json
1065 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Database.json
1066 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Debugger.json
1067 ${JAVASCRIPTCORE_DIR}/inspector/protocol/GenericTypes.json
1068 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Inspector.json
1069 ${JAVASCRIPTCORE_DIR}/inspector/protocol/LayerTree.json
1070 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Network.json
1071 ${JAVASCRIPTCORE_DIR}/inspector/protocol/OverlayTypes.json
1072 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Page.json
1073 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Runtime.json
1074 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Timeline.json
1075 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Worker.json
1076 )
1077
1078 if (ENABLE_INDEXED_DATABASE)
1079 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1080 ${JAVASCRIPTCORE_DIR}/inspector/protocol/IndexedDB.json
1081 )
1082 endif ()
1083
1084 if (ENABLE_WEB_REPLAY)
1085 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1086 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Replay.json
1087 )
1088 endif ()
1089
1090 add_custom_command(
1091 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1092 MAIN_DEPENDENCY ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py
1093 DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
1094 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1095 VERBATIM)
1096
1097 # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
1098 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol)
1099 file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector)
1100 add_custom_command(
1101 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.cpp
1102 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1103 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.cpp
1104 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1105 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.cpp
1106 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1107 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendCommands.js
1108 MAIN_DEPENDENCY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1109 DEPENDS ${JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS}
1110 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector" --framework JavaScriptCore ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1111 VERBATIM)
1112
1113 # JSCBuiltins
1114 add_custom_command(
1115 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1116 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
1117 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/builtins
1118 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins --input-directory ${CMAKE_CURRENT_SOURCE_DIR}/builtins --output ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
1119 VERBATIM)
1120
1121 list(APPEND JavaScriptCore_SOURCES
1122 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.cpp
1123 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.cpp
1124 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.cpp
1125 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
1126 )
1127
1128 list(APPEND JavaScriptCore_HEADERS
1129 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1130 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1131 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1132 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1133 )
1134
1135 add_custom_command(
1136 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1137 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
1138 DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
1139 COMMAND echo "//# sourceURL=__WebInspectorInjectedScript__" > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1140 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1141 COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
1142 VERBATIM)
1143
1144 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
1145
1146 # Web Replay inputs generator
1147 if (ENABLE_WEB_REPLAY)
1148 set(JavaScript_WEB_REPLAY_INPUTS ${CMAKE_CURRENT_SOURCE_DIR}/replay/JSInputs.json)
1149 add_custom_command(
1150 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
1151 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py
1152 DEPENDS ${JavaScript_WEB_REPLAY_INPUTS}
1153 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py --outputDir ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ --framework JavaScriptCore ${JavaScript_WEB_REPLAY_INPUTS}
1154 VERBATIM)
1155
1156 list(APPEND JavaScriptCore_SOURCES
1157 replay/EncodedValue.cpp
1158 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
1159 )
1160 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h)
1161 endif ()
1162
1163 if (WTF_CPU_ARM)
1164 elseif (WTF_CPU_ARM64)
1165 elseif (WTF_CPU_HPPA)
1166 elseif (WTF_CPU_PPC)
1167 elseif (WTF_CPU_PPC64)
1168 elseif (WTF_CPU_PPC64LE)
1169 elseif (WTF_CPU_S390)
1170 elseif (WTF_CPU_S390X)
1171 elseif (WTF_CPU_MIPS)
1172 elseif (WTF_CPU_SH4)
1173 elseif (WTF_CPU_X86)
1174 elseif (WTF_CPU_X86_64)
1175 if (MSVC AND ENABLE_JIT)
1176 add_custom_command(
1177 OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
1178 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1179 COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1180 VERBATIM)
1181
1182 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
1183 endif ()
1184 else ()
1185 message(FATAL_ERROR "Unknown CPU")
1186 endif ()
1187
1188
1189 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
1190
1191 WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${JavaScriptCore_FORWARDING_HEADERS_FILES})
1192
1193
1194 add_subdirectory(shell)
1195
1196 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
1197 include_directories(${JavaScriptCore_INCLUDE_DIRECTORIES})
1198 include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
1199 add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
1200 target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
1201 set_target_properties(JavaScriptCore PROPERTIES COMPILE_DEFINITIONS "BUILDING_JavaScriptCore")
1202 set_target_properties(JavaScriptCore PROPERTIES FOLDER "JavaScriptCore")
1203
1204 if (JavaScriptCore_OUTPUT_NAME)
1205 set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME ${JavaScriptCore_OUTPUT_NAME})
1206 endif ()
1207
1208 if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
1209 POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
1210 set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
1211 install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
1212 endif ()
1213
1214 if (ENABLE_FTL_JIT)
1215 add_dependencies(JavaScriptCore llvmForJSC)
1216 endif ()
1217
1218