1 set(JavaScriptCore_INCLUDE_DIRECTORIES
3 "${JAVASCRIPTCORE_DIR}"
4 "${JAVASCRIPTCORE_DIR}/API"
5 "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
6 "${JAVASCRIPTCORE_DIR}/assembler"
7 "${JAVASCRIPTCORE_DIR}/bytecode"
8 "${JAVASCRIPTCORE_DIR}/bytecompiler"
9 "${JAVASCRIPTCORE_DIR}/dfg"
10 "${JAVASCRIPTCORE_DIR}/disassembler"
11 "${JAVASCRIPTCORE_DIR}/ftl"
12 "${JAVASCRIPTCORE_DIR}/heap"
13 "${JAVASCRIPTCORE_DIR}/debugger"
14 "${JAVASCRIPTCORE_DIR}/interpreter"
15 "${JAVASCRIPTCORE_DIR}/jit"
16 "${JAVASCRIPTCORE_DIR}/llint"
17 "${JAVASCRIPTCORE_DIR}/parser"
18 "${JAVASCRIPTCORE_DIR}/profiler"
19 "${JAVASCRIPTCORE_DIR}/runtime"
20 "${JAVASCRIPTCORE_DIR}/tools"
21 "${JAVASCRIPTCORE_DIR}/yarr"
23 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
24 "${CMAKE_SOURCE_DIR}/Source"
27 set(JavaScriptCore_SOURCES
29 API/JSCTestRunnerUtils.cpp
30 API/JSCallbackConstructor.cpp
31 API/JSCallbackFunction.cpp
32 API/JSCallbackObject.cpp
36 API/JSProfilerPrivate.cpp
40 API/JSWeakObjectMapRefPrivate.cpp
41 API/OpaqueJSString.cpp
43 assembler/MacroAssembler.cpp
44 assembler/LinkBuffer.cpp
45 assembler/MacroAssemblerX86Common.cpp
47 bytecode/ArrayAllocationProfile.cpp
48 bytecode/ArrayProfile.cpp
49 bytecode/CallLinkInfo.cpp
50 bytecode/CallLinkStatus.cpp
51 bytecode/CodeBlock.cpp
52 bytecode/CodeBlockHash.cpp
53 bytecode/CodeOrigin.cpp
55 bytecode/DFGExitProfile.cpp
56 bytecode/DeferredCompilationCallback.cpp
57 bytecode/ExecutionCounter.cpp
59 bytecode/GetByIdStatus.cpp
60 bytecode/JumpTable.cpp
61 bytecode/LazyOperandValueProfile.cpp
62 bytecode/MethodOfGettingAValueProfile.cpp
64 bytecode/PolymorphicPutByIdList.cpp
65 bytecode/PreciseJumpTargets.cpp
66 bytecode/PutByIdStatus.cpp
67 bytecode/ReduceWhitespace.cpp
68 bytecode/SamplingTool.cpp
69 bytecode/SpecialPointer.cpp
70 bytecode/SpeculatedType.cpp
71 bytecode/StructureStubClearingWatchpoint.cpp
72 bytecode/StructureStubInfo.cpp
73 bytecode/UnlinkedCodeBlock.cpp
74 bytecode/Watchpoint.cpp
76 bytecompiler/BytecodeGenerator.cpp
77 bytecompiler/NodesCodegen.cpp
79 dfg/DFGAbstractHeap.cpp
80 dfg/DFGAbstractValue.cpp
81 dfg/DFGArgumentsSimplificationPhase.cpp
83 dfg/DFGAssemblyHelpers.cpp
84 dfg/DFGAtTailAbstractState.cpp
85 dfg/DFGBackwardsPropagationPhase.cpp
87 dfg/DFGBinarySwitch.cpp
88 dfg/DFGBlockInsertionSet.cpp
89 dfg/DFGByteCodeParser.cpp
91 dfg/DFGCFGSimplificationPhase.cpp
92 dfg/DFGCPSRethreadingPhase.cpp
94 dfg/DFGCapabilities.cpp
99 dfg/DFGCompilationKey.cpp
100 dfg/DFGCompilationMode.cpp
101 dfg/DFGConstantFoldingPhase.cpp
102 dfg/DFGCriticalEdgeBreakingPhase.cpp
104 dfg/DFGDesiredIdentifiers.cpp
105 dfg/DFGDesiredStructureChains.cpp
106 dfg/DFGDesiredTransitions.cpp
107 dfg/DFGDesiredWatchpoints.cpp
108 dfg/DFGDesiredWeakReferences.cpp
109 dfg/DFGDesiredWriteBarriers.cpp
110 dfg/DFGDisassembler.cpp
111 dfg/DFGDominators.cpp
114 dfg/DFGFailedFinalizer.cpp
116 dfg/DFGFixupPhase.cpp
117 dfg/DFGFlushFormat.cpp
118 dfg/DFGFlushLivenessAnalysisPhase.cpp
120 dfg/DFGInPlaceAbstractState.cpp
122 dfg/DFGJITCompiler.cpp
123 dfg/DFGJITFinalizer.cpp
125 dfg/DFGLazyJSValue.cpp
126 dfg/DFGLivenessAnalysisPhase.cpp
127 dfg/DFGLongLivedState.cpp
128 dfg/DFGLoopPreHeaderCreationPhase.cpp
129 dfg/DFGMinifiedNode.cpp
130 dfg/DFGNaturalLoops.cpp
133 dfg/DFGOSRAvailabilityAnalysisPhase.cpp
136 dfg/DFGOSRExitBase.cpp
137 dfg/DFGOSRExitCompiler.cpp
138 dfg/DFGOSRExitCompiler32_64.cpp
139 dfg/DFGOSRExitCompiler64.cpp
140 dfg/DFGOSRExitCompilerCommon.cpp
141 dfg/DFGOSRExitJumpPlaceholder.cpp
142 dfg/DFGOSRExitPreparation.cpp
143 dfg/DFGOperations.cpp
146 dfg/DFGPredictionInjectionPhase.cpp
147 dfg/DFGPredictionPropagationPhase.cpp
149 dfg/DFGSSAConversionPhase.cpp
150 dfg/DFGSpeculativeJIT.cpp
151 dfg/DFGSpeculativeJIT32_64.cpp
152 dfg/DFGSpeculativeJIT64.cpp
154 dfg/DFGTypeCheckHoistingPhase.cpp
155 dfg/DFGUnificationPhase.cpp
158 dfg/DFGValueSource.cpp
159 dfg/DFGVariableAccessDataDump.cpp
160 dfg/DFGVariableEvent.cpp
161 dfg/DFGVariableEventStream.cpp
162 dfg/DFGVirtualRegisterAllocationPhase.cpp
165 disassembler/ARMv7Disassembler.cpp
166 disassembler/Disassembler.cpp
167 disassembler/LLVMDisassembler.cpp
168 disassembler/UDis86Disassembler.cpp
169 disassembler/X86Disassembler.cpp
171 heap/BlockAllocator.cpp
174 heap/ConservativeRoots.cpp
175 heap/DFGCodeBlocks.cpp
176 heap/GCIncomingRefCountedSet.h
177 heap/GCIncomingRefCounted.h
178 heap/GCIncomingRefCountedSetInlines.h
179 heap/GCIncomingRefCountedInlines.h
181 heap/GCThreadSharedData.cpp
185 heap/HeapStatistics.cpp
187 heap/IncrementalSweeper.cpp
188 heap/JITStubRoutineSet.cpp
189 heap/MachineStackMarker.cpp
191 heap/BlockAllocator.cpp
192 heap/ConservativeRoots.cpp
195 heap/DFGCodeBlocks.cpp
197 heap/GCThreadSharedData.cpp
201 heap/HeapStatistics.cpp
203 heap/JITStubRoutineSet.cpp
204 heap/MachineStackMarker.cpp
206 heap/MarkedAllocator.cpp
211 heap/VTableSpectrum.cpp
214 heap/WeakHandleOwner.cpp
216 heap/WriteBarrierSupport.cpp
218 debugger/Debugger.cpp
219 debugger/DebuggerActivation.cpp
220 debugger/DebuggerCallFrame.cpp
222 interpreter/AbstractPC.cpp
223 interpreter/CallFrame.cpp
224 interpreter/Interpreter.cpp
225 interpreter/JSStack.cpp
226 interpreter/StackIterator.cpp
227 interpreter/VMInspector.cpp
229 jit/ClosureCallStubRoutine.cpp
230 jit/ExecutableAllocator.cpp
231 jit/ExecutableAllocatorFixedVMPool.cpp
232 jit/GCAwareJITStubRoutine.cpp
233 jit/HostCallReturnValue.cpp
235 jit/JITArithmetic.cpp
236 jit/JITArithmetic32_64.cpp
240 jit/JITDisassembler.cpp
241 jit/JITExceptions.cpp
243 jit/JITOpcodes32_64.cpp
244 jit/JITPropertyAccess.cpp
245 jit/JITPropertyAccess32_64.cpp
246 jit/JITStubRoutine.cpp
249 jit/JITToDFGDeferredCompilationCallback.cpp
250 jit/JumpReplacementWatchpoint.cpp
251 jit/ThunkGenerators.cpp
256 parser/ParserArena.cpp
257 parser/SourceCode.cpp
258 parser/SourceProvider.cpp
259 parser/SourceProviderCache.cpp
261 profiler/ProfilerBytecode.cpp
262 profiler/ProfilerBytecodeSequence.cpp
263 profiler/ProfilerBytecodes.cpp
264 profiler/ProfilerCompilation.cpp
265 profiler/ProfilerCompilationKind.cpp
266 profiler/ProfilerCompiledBytecode.cpp
267 profiler/ProfilerDatabase.cpp
268 profiler/ProfilerOrigin.cpp
269 profiler/ProfilerOriginStack.cpp
270 profiler/ProfilerOSRExit.cpp
271 profiler/ProfilerOSRExitSite.cpp
272 profiler/ProfilerProfiledBytecodes.cpp
274 profiler/ProfileGenerator.cpp
275 profiler/ProfileNode.cpp
276 profiler/LegacyProfiler.cpp
279 runtime/Arguments.cpp
280 runtime/ArrayBuffer.cpp
281 runtime/ArrayBufferView.cpp
282 runtime/ArrayConstructor.cpp
283 runtime/ArrayPrototype.cpp
284 runtime/BooleanConstructor.cpp
285 runtime/BooleanObject.cpp
286 runtime/BooleanPrototype.cpp
288 runtime/CodeCache.cpp
289 runtime/CodeSpecializationKind.cpp
290 runtime/CommonIdentifiers.cpp
291 runtime/CommonSlowPaths.cpp
292 runtime/CommonSlowPathsExceptions.cpp
293 runtime/CompilationResult.cpp
294 runtime/Completion.cpp
295 runtime/ConstructData.cpp
298 runtime/DateConstructor.cpp
299 runtime/DateConversion.cpp
300 runtime/DateInstance.cpp
301 runtime/DatePrototype.cpp
302 runtime/DumpContext.cpp
304 runtime/ErrorConstructor.cpp
305 runtime/ErrorInstance.cpp
306 runtime/ErrorPrototype.cpp
307 runtime/ExceptionHelpers.cpp
308 runtime/Executable.cpp
309 runtime/FunctionConstructor.cpp
310 runtime/FunctionExecutableDump.cpp
311 runtime/FunctionPrototype.cpp
312 runtime/GCActivityCallback.cpp
313 runtime/GetterSetter.cpp
314 runtime/Identifier.cpp
315 runtime/IndexingType.cpp
316 runtime/InitializeThreading.cpp
317 runtime/IntendedStructureChain.cpp
318 runtime/InternalFunction.cpp
319 runtime/JSAPIValueWrapper.cpp
320 runtime/JSActivation.cpp
322 runtime/JSArrayBuffer.cpp
323 runtime/JSArrayBufferConstructor.cpp
324 runtime/JSArrayBufferPrototype.cpp
325 runtime/JSArrayBufferView.cpp
326 runtime/JSBoundFunction.cpp
327 runtime/JSCJSValue.cpp
330 runtime/JSDataView.cpp
331 runtime/JSDataViewPrototype.cpp
332 runtime/JSDateMath.cpp
333 runtime/JSFunction.cpp
334 runtime/JSGlobalObject.cpp
335 runtime/JSGlobalObjectFunctions.cpp
338 runtime/JSNameScope.cpp
339 runtime/JSNotAnObject.cpp
340 runtime/JSONObject.cpp
342 runtime/JSPromise.cpp
343 runtime/JSPromiseCallback.cpp
344 runtime/JSPromiseConstructor.cpp
345 runtime/JSPromisePrototype.cpp
346 runtime/JSPromiseResolver.cpp
347 runtime/JSPromiseResolverConstructor.cpp
348 runtime/JSPromiseResolverPrototype.cpp
349 runtime/JSPropertyNameIterator.cpp
352 runtime/JSSegmentedVariableObject.cpp
353 runtime/JSStaticScopeObject.cpp
355 runtime/JSStringJoiner.cpp
356 runtime/JSSymbolTableObject.cpp
357 runtime/JSTypedArrayConstructors.cpp
358 runtime/JSTypedArrayPrototypes.cpp
359 runtime/JSTypedArrays.cpp
360 runtime/JSVariableObject.cpp
361 runtime/JSWithScope.cpp
362 runtime/JSWrapperObject.cpp
363 runtime/LiteralParser.cpp
365 runtime/MapConstructor.cpp
367 runtime/MapPrototype.cpp
368 runtime/MathObject.cpp
369 runtime/MemoryStatistics.cpp
370 runtime/NameConstructor.cpp
371 runtime/NameInstance.cpp
372 runtime/NamePrototype.cpp
373 runtime/NativeErrorConstructor.cpp
374 runtime/NativeErrorPrototype.cpp
375 runtime/NumberConstructor.cpp
376 runtime/NumberObject.cpp
377 runtime/NumberPrototype.cpp
378 runtime/ObjectConstructor.cpp
379 runtime/ObjectPrototype.cpp
380 runtime/Operations.cpp
382 runtime/PropertyDescriptor.cpp
383 runtime/PropertyNameArray.cpp
384 runtime/PropertySlot.cpp
385 runtime/PropertyTable.cpp
386 runtime/PrototypeMap.cpp
388 runtime/RegExpCache.cpp
389 runtime/RegExpCachedResult.cpp
390 runtime/RegExpConstructor.cpp
391 runtime/RegExpMatchesArray.cpp
392 runtime/RegExpObject.cpp
393 runtime/RegExpPrototype.cpp
394 runtime/SamplingCounter.cpp
395 runtime/SimpleTypedArrayController.cpp
396 runtime/SmallStrings.cpp
397 runtime/SparseArrayValueMap.cpp
398 runtime/StrictEvalActivation.cpp
399 runtime/StringConstructor.cpp
400 runtime/StringObject.cpp
401 runtime/StringPrototype.cpp
402 runtime/StringRecursionChecker.cpp
403 runtime/Structure.cpp
404 runtime/StructureChain.cpp
405 runtime/StructureRareData.cpp
406 runtime/SymbolTable.cpp
407 runtime/TypedArrayController.cpp
408 runtime/TypedArrayType.cpp
411 runtime/WatchdogNone.cpp
413 tools/CodeProfile.cpp
414 tools/CodeProfiling.cpp
416 yarr/YarrCanonicalizeUCS2.cpp
418 yarr/YarrInterpreter.cpp
420 yarr/YarrSyntaxChecker.cpp
423 set(JavaScriptCore_LUT_FILES
424 runtime/ArrayConstructor.cpp
425 runtime/ArrayPrototype.cpp
426 runtime/BooleanPrototype.cpp
427 runtime/DateConstructor.cpp
428 runtime/DatePrototype.cpp
429 runtime/ErrorPrototype.cpp
430 runtime/JSDataViewPrototype.cpp
431 runtime/JSGlobalObject.cpp
432 runtime/JSONObject.cpp
433 runtime/JSPromiseConstructor.cpp
434 runtime/JSPromisePrototype.cpp
435 runtime/JSPromiseResolverPrototype.cpp
436 runtime/NamePrototype.cpp
437 runtime/NumberConstructor.cpp
438 runtime/NumberPrototype.cpp
439 runtime/ObjectConstructor.cpp
440 runtime/RegExpConstructor.cpp
441 runtime/RegExpObject.cpp
442 runtime/RegExpPrototype.cpp
443 runtime/StringConstructor.cpp
446 set(JavaScriptCore_LIBRARIES
450 if (WTF_USE_ICU_UNICODE)
451 list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
454 list(APPEND JavaScriptCore_LIBRARIES
455 ${ICU_I18N_LIBRARIES}
460 # We cannot check for RUBY_FOUND because it is set only when the full package is installed and
461 # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
462 # for finding the only Ruby interpreter.
463 if (NOT RUBY_EXECUTABLE)
464 message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.")
468 llint/LowLevelInterpreter.asm
469 llint/LowLevelInterpreter32_64.asm
470 llint/LowLevelInterpreter64.asm
476 offlineasm/backends.rb
479 offlineasm/instructions.rb
480 offlineasm/offsets.rb
483 offlineasm/registers.rb
485 offlineasm/self_hash.rb
486 offlineasm/settings.rb
487 offlineasm/transform.rb
492 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
493 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
494 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}
495 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
498 # We add the header file directly to the ADD_EXECUTABLE call instead of setting the
499 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb may
500 # not regenerate it in case the hash it calculates does not change.
501 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMAND above have
502 # changed the command will always be called because the mtime of LLIntDesiredOffsets.h will
503 # always be older than that of its dependencies.
504 # Additionally, setting the OBJECT_DEPENDS property will make LLIntDesiredOffsets.h a Makefile
505 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
506 # actually be run twice!
507 add_executable(LLIntOffsetsExtractor
508 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
509 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
511 target_link_libraries(LLIntOffsetsExtractor WTF)
513 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
514 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
515 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
516 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
517 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
518 # after every asm.rb run.
520 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
521 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
522 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
523 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
524 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
527 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
528 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
529 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
530 # since it is used in the add_library() call at the end of this file.
531 list(APPEND JavaScriptCore_HEADERS
532 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
534 list(APPEND JavaScriptCore_SOURCES
537 llint/LLIntEntrypoint.cpp
538 llint/LLIntExceptions.cpp
539 llint/LLIntSlowPaths.cpp
540 llint/LLIntThunks.cpp
541 llint/LowLevelInterpreter.cpp
545 set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
546 macro(GENERATE_HASH_LUT _input _output)
549 DEPENDS ${HASH_LUT_GENERATOR} ${_input}
550 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
552 list(APPEND JavaScriptCore_HEADERS ${_output})
555 # GENERATOR 1-A: LUT creator
556 foreach (_file ${JavaScriptCore_LUT_FILES})
557 get_filename_component(_name ${_file} NAME_WE)
558 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
561 set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
576 set(JavaScriptCore_FORWARDING_HEADERS_FILES
581 API/JSCTestRunnerUtils.h
583 API/JSContextRefPrivate.h
585 API/JSObjectRefPrivate.h
586 API/JSScriptRefPrivate.h
589 API/JSStringRefBSTR.h
593 API/JSWeakObjectMapRefInternal.h
594 API/JSWeakObjectMapRefPrivate.h
597 API/WebKitAvailability.h
601 # GENERATOR 1-B: particular LUT creator (for 1 file only)
602 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
604 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
606 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
607 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables
608 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
610 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
613 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
615 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
616 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
617 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
619 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
622 list(APPEND JavaScriptCore_SOURCES
623 assembler/ARMAssembler.cpp
624 assembler/ARMv7Assembler.cpp
625 assembler/MacroAssemblerARM.cpp
627 if (MSVC AND ENABLE_JIT)
629 OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
630 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_jit_stubs
631 DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubsARM.h
632 DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp
633 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
637 OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
638 MAIN_DEPENDENCY ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
639 COMMAND armasm -nologo ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
642 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj)
644 elseif (WTF_CPU_MIPS)
646 list(APPEND JavaScriptCore_SOURCES
647 assembler/MacroAssemblerX86Common.cpp
649 elseif (WTF_CPU_X86_64)
650 if (MSVC AND ENABLE_JIT)
652 OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
653 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
654 COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
657 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
659 list(APPEND JavaScriptCore_SOURCES
660 assembler/MacroAssemblerX86Common.cpp
663 message(FATAL_ERROR "Unknown CPU")
667 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
669 WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${JavaScriptCore_FORWARDING_HEADERS_FILES})
672 add_subdirectory(shell)
674 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
675 include_directories(${JavaScriptCore_INCLUDE_DIRECTORIES})
676 add_definitions(-DBUILDING_JavaScriptCore -DSTATICALLY_LINKED_WITH_WTF)
677 add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
678 target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
679 set_target_properties(JavaScriptCore PROPERTIES FOLDER "JavaScriptCore")
680 set_target_properties(JavaScriptCore PROPERTIES LINK_INTERFACE_LIBRARIES "")
682 if (JavaScriptCore_OUTPUT_NAME)
683 set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME ${JavaScriptCore_OUTPUT_NAME})
687 set_target_properties(JavaScriptCore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
688 install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")