Newer
Older
set(JavaScriptCore_INCLUDE_DIRECTORIES
"${CMAKE_BINARY_DIR}"
"${JAVASCRIPTCORE_DIR}"
"${JAVASCRIPTCORE_DIR}/API"
"${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
"${JAVASCRIPTCORE_DIR}/assembler"
joepeck@webkit.org
committed
"${JAVASCRIPTCORE_DIR}/bindings"
"${JAVASCRIPTCORE_DIR}/bytecode"
"${JAVASCRIPTCORE_DIR}/bytecompiler"
"${JAVASCRIPTCORE_DIR}/dfg"
"${JAVASCRIPTCORE_DIR}/disassembler"
"${JAVASCRIPTCORE_DIR}/heap"
"${JAVASCRIPTCORE_DIR}/debugger"
joepeck@webkit.org
committed
"${JAVASCRIPTCORE_DIR}/inspector"
joepeck@webkit.org
committed
"${JAVASCRIPTCORE_DIR}/inspector/agents"
"${JAVASCRIPTCORE_DIR}/interpreter"
"${JAVASCRIPTCORE_DIR}/jit"
"${JAVASCRIPTCORE_DIR}/parser"
"${JAVASCRIPTCORE_DIR}/profiler"
"${JAVASCRIPTCORE_DIR}/runtime"
"${JAVASCRIPTCORE_DIR}/tools"
"${JAVASCRIPTCORE_DIR}/yarr"
"${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
"${CMAKE_SOURCE_DIR}/Source"
set(JavaScriptCore_SOURCES
API/JSCTestRunnerUtils.cpp
API/JSCallbackConstructor.cpp
API/JSCallbackFunction.cpp
API/JSCallbackObject.cpp
API/JSClassRef.cpp
API/JSContextRef.cpp
API/JSObjectRef.cpp
API/JSProfilerPrivate.cpp
oliver@apple.com
committed
API/JSScriptRef.cpp
API/JSStringRef.cpp
API/JSValueRef.cpp
API/JSWeakObjectMapRefPrivate.cpp
API/OpaqueJSString.cpp
assembler/LinkBuffer.cpp
assembler/MacroAssemblerX86Common.cpp
joepeck@webkit.org
committed
bindings/ScriptFunctionCall.cpp
bindings/ScriptObject.cpp
bindings/ScriptValue.cpp
bytecode/ArrayAllocationProfile.cpp
bytecode/ArrayProfile.cpp
bytecode/BytecodeBasicBlock.cpp
bytecode/BytecodeLivenessAnalysis.cpp
fpizlo@apple.com
committed
bytecode/CallLinkStatus.cpp
bytecode/CodeBlock.cpp
bytecode/CodeBlockHash.cpp
bytecode/CodeBlockJettisoningWatchpoint.cpp
bytecode/CodeOrigin.cpp
bytecode/CodeType.cpp
bytecode/DFGExitProfile.cpp
fpizlo@apple.com
committed
bytecode/DeferredCompilationCallback.cpp
fpizlo@apple.com
committed
bytecode/GetByIdStatus.cpp
fpizlo@apple.com
committed
bytecode/InlineCallFrameSet.cpp
bytecode/JumpTable.cpp
fpizlo@apple.com
committed
bytecode/LazyOperandValueProfile.cpp
bytecode/MethodOfGettingAValueProfile.cpp
bytecode/Opcode.cpp
bytecode/PolymorphicPutByIdList.cpp
bytecode/PreciseJumpTargets.cpp
bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp
fpizlo@apple.com
committed
bytecode/PutByIdStatus.cpp
fpizlo@apple.com
committed
bytecode/ReduceWhitespace.cpp
bytecode/SamplingTool.cpp
bytecode/StructureStubClearingWatchpoint.cpp
bytecode/StructureStubInfo.cpp
fpizlo@apple.com
committed
bytecode/ValueRecovery.cpp
bytecode/Watchpoint.cpp
bytecompiler/BytecodeGenerator.cpp
bytecompiler/NodesCodegen.cpp
debugger/Debugger.cpp
debugger/DebuggerActivation.cpp
debugger/DebuggerCallFrame.cpp
dfg/DFGAbstractHeap.cpp
dfg/DFGAbstractValue.cpp
dfg/DFGArgumentsSimplificationPhase.cpp
fpizlo@apple.com
committed
dfg/DFGArithMode.cpp
fpizlo@apple.com
committed
dfg/DFGArrayMode.cpp
dfg/DFGAvailability.cpp
dfg/DFGBackwardsPropagationPhase.cpp
dfg/DFGBasicBlock.cpp
dfg/DFGBinarySwitch.cpp
dfg/DFGBlockInsertionSet.cpp
dfg/DFGByteCodeParser.cpp
dfg/DFGCFGSimplificationPhase.cpp
fpizlo@apple.com
committed
dfg/DFGCPSRethreadingPhase.cpp
dfg/DFGCapabilities.cpp
dfg/DFGClobberSet.cpp
dfg/DFGClobberize.cpp
dfg/DFGCommon.cpp
dfg/DFGCommonData.cpp
fpizlo@apple.com
committed
dfg/DFGCompilationKey.cpp
dfg/DFGCompilationMode.cpp
dfg/DFGConstantFoldingPhase.cpp
dfg/DFGCriticalEdgeBreakingPhase.cpp
dfg/DFGDesiredIdentifiers.cpp
dfg/DFGDesiredStructureChains.cpp
mhahnenberg@apple.com
committed
dfg/DFGDesiredTransitions.cpp
mhahnenberg@apple.com
committed
dfg/DFGDesiredWeakReferences.cpp
dfg/DFGDesiredWriteBarriers.cpp
dfg/DFGDisassembler.cpp
dfg/DFGDriver.cpp
fpizlo@apple.com
committed
dfg/DFGEdge.cpp
dfg/DFGFailedFinalizer.cpp
dfg/DFGFinalizer.cpp
dfg/DFGFixupPhase.cpp
dfg/DFGFlushFormat.cpp
dfg/DFGFlushLivenessAnalysisPhase.cpp
dfg/DFGGraph.cpp
dfg/DFGInvalidationPointInjectionPhase.cpp
oliver@apple.com
committed
dfg/DFGJITCode.cpp
dfg/DFGJITCompiler.cpp
dfg/DFGJumpReplacement.cpp
dfg/DFGLICMPhase.cpp
dfg/DFGLazyJSValue.cpp
dfg/DFGLivenessAnalysisPhase.cpp
fpizlo@apple.com
committed
dfg/DFGLongLivedState.cpp
dfg/DFGLoopPreHeaderCreationPhase.cpp
dfg/DFGMinifiedNode.cpp
fpizlo@apple.com
committed
dfg/DFGNode.cpp
dfg/DFGOSRAvailabilityAnalysisPhase.cpp
dfg/DFGOSREntry.cpp
dfg/DFGOSREntrypointCreationPhase.cpp
dfg/DFGOSRExit.cpp
oliver@apple.com
committed
dfg/DFGOSRExitBase.cpp
dfg/DFGOSRExitCompiler.cpp
dfg/DFGOSRExitCompiler32_64.cpp
dfg/DFGOSRExitCompiler64.cpp
dfg/DFGOSRExitCompilerCommon.cpp
dfg/DFGOSRExitJumpPlaceholder.cpp
oliver@apple.com
committed
dfg/DFGOSRExitPreparation.cpp
dfg/DFGOperations.cpp
fpizlo@apple.com
committed
dfg/DFGPredictionInjectionPhase.cpp
dfg/DFGPredictionPropagationPhase.cpp
dfg/DFGResurrectionForValidationPhase.cpp
dfg/DFGSpeculativeJIT.cpp
dfg/DFGSpeculativeJIT32_64.cpp
dfg/DFGSpeculativeJIT64.cpp
dfg/DFGStoreBarrierElisionPhase.cpp
dfg/DFGStrengthReductionPhase.cpp
dfg/DFGThunks.cpp
dfg/DFGTierUpCheckInjectionPhase.cpp
fpizlo@apple.com
committed
dfg/DFGUnificationPhase.cpp
fpizlo@apple.com
committed
dfg/DFGUseKind.cpp
dfg/DFGValueSource.cpp
fpizlo@apple.com
committed
dfg/DFGVariableAccessDataDump.cpp
dfg/DFGVariableEvent.cpp
dfg/DFGVariableEventStream.cpp
dfg/DFGVirtualRegisterAllocationPhase.cpp
dfg/DFGWatchpointCollectionPhase.cpp
fpizlo@apple.com
committed
disassembler/Disassembler.cpp
disassembler/LLVMDisassembler.cpp
disassembler/UDis86Disassembler.cpp
disassembler/X86Disassembler.cpp
heap/BlockAllocator.cpp
heap/ConservativeRoots.cpp
heap/CopiedSpace.cpp
heap/CopyVisitor.cpp
heap/DeferGC.cpp
heap/GCThread.cpp
heap/GCThreadSharedData.cpp
heap/HandleSet.cpp
heap/HandleStack.cpp
heap/Heap.cpp
heap/HeapStatistics.cpp
heap/HeapTimer.cpp
heap/JITStubRoutineSet.cpp
heap/MachineStackMarker.cpp
heap/MarkStack.cpp
heap/MarkedAllocator.cpp
heap/SlotVisitor.cpp
mhahnenberg@apple.com
committed
heap/SuperRegion.cpp
heap/Weak.cpp
heap/WeakBlock.cpp
heap/WeakHandleOwner.cpp
heap/WeakSet.cpp
heap/WriteBarrierBuffer.cpp
joepeck@webkit.org
committed
inspector/InspectorAgentRegistry.cpp
inspector/InspectorBackendDispatcher.cpp
inspector/InspectorValues.cpp
inspector/InjectedScript.cpp
inspector/InjectedScriptBase.cpp
inspector/InjectedScriptHost.cpp
inspector/InjectedScriptManager.cpp
inspector/InjectedScriptModule.cpp
inspector/JSInjectedScriptHost.cpp
inspector/JSInjectedScriptHostPrototype.cpp
joepeck@webkit.org
committed
inspector/agents/InspectorAgent.cpp
joepeck@webkit.org
committed
fpizlo@apple.com
committed
interpreter/AbstractPC.cpp
interpreter/CallFrame.cpp
interpreter/Interpreter.cpp
interpreter/JSStack.cpp
msaboff@apple.com
committed
interpreter/ProtoCallFrame.cpp
interpreter/StackVisitor.cpp
interpreter/VMInspector.cpp
fpizlo@apple.com
committed
jit/AssemblyHelpers.cpp
jit/ClosureCallStubRoutine.cpp
jit/ExecutableAllocator.cpp
jit/ExecutableAllocatorFixedVMPool.cpp
fpizlo@apple.com
committed
jit/GCAwareJITStubRoutine.cpp
jit/HostCallReturnValue.cpp
jit/JIT.cpp
jit/JITArithmetic.cpp
jit/JITCall.cpp
jit/JITDisassembler.cpp
fpizlo@apple.com
committed
jit/JITExceptions.cpp
fpizlo@apple.com
committed
jit/JITInlineCacheGenerator.cpp
jit/JITOpcodes.cpp
jit/JITPropertyAccess.cpp
fpizlo@apple.com
committed
jit/JITStubRoutine.cpp
jit/JITStubs.cpp
fpizlo@apple.com
committed
jit/JITToDFGDeferredCompilationCallback.cpp
fpizlo@apple.com
committed
jit/RegisterSet.cpp
fpizlo@apple.com
committed
jit/TempRegisterSet.cpp
jit/ThunkGenerators.cpp
parser/Lexer.cpp
parser/Nodes.cpp
parser/Parser.cpp
parser/ParserArena.cpp
parser/SourceProvider.cpp
parser/SourceProviderCache.cpp
profiler/LegacyProfiler.cpp
profiler/Profile.cpp
profiler/ProfileGenerator.cpp
profiler/ProfileNode.cpp
fpizlo@apple.com
committed
profiler/ProfilerBytecode.cpp
fpizlo@apple.com
committed
profiler/ProfilerBytecodeSequence.cpp
fpizlo@apple.com
committed
profiler/ProfilerBytecodes.cpp
profiler/ProfilerCompilation.cpp
profiler/ProfilerCompilationKind.cpp
profiler/ProfilerCompiledBytecode.cpp
profiler/ProfilerDatabase.cpp
profiler/ProfilerOSRExit.cpp
profiler/ProfilerOSRExitSite.cpp
profiler/ProfilerOrigin.cpp
profiler/ProfilerOriginStack.cpp
fpizlo@apple.com
committed
profiler/ProfilerProfiledBytecodes.cpp
runtime/ArgList.cpp
runtime/Arguments.cpp
runtime/ArgumentsIteratorConstructor.cpp
runtime/ArgumentsIteratorPrototype.cpp
runtime/ArrayBufferNeuteringWatchpoint.cpp
runtime/ArrayConstructor.cpp
runtime/ArrayIteratorConstructor.cpp
runtime/ArrayIteratorPrototype.cpp
runtime/ArrayPrototype.cpp
runtime/BooleanConstructor.cpp
runtime/BooleanObject.cpp
runtime/BooleanPrototype.cpp
runtime/CallData.cpp
runtime/CodeSpecializationKind.cpp
runtime/CommonIdentifiers.cpp
runtime/CommonSlowPathsExceptions.cpp
runtime/Completion.cpp
runtime/ConstructData.cpp
runtime/DataView.cpp
runtime/DataView.h
runtime/DateConstructor.cpp
runtime/DateConversion.cpp
runtime/DateInstance.cpp
runtime/DatePrototype.cpp
runtime/Error.cpp
runtime/ErrorConstructor.cpp
runtime/ErrorInstance.cpp
runtime/ErrorPrototype.cpp
runtime/ExceptionHelpers.cpp
runtime/Executable.cpp
runtime/FunctionConstructor.cpp
fpizlo@apple.com
committed
runtime/FunctionExecutableDump.cpp
runtime/FunctionPrototype.cpp
runtime/GCActivityCallback.cpp
runtime/GetterSetter.cpp
runtime/Identifier.cpp
runtime/IndexingType.cpp
runtime/InitializeThreading.cpp
runtime/InternalFunction.cpp
runtime/JSAPIValueWrapper.cpp
runtime/JSArgumentsIterator.cpp
runtime/JSArray.cpp
runtime/JSArrayBuffer.cpp
runtime/JSArrayBufferConstructor.cpp
runtime/JSArrayBufferPrototype.cpp
runtime/JSArrayBufferView.cpp
runtime/JSArrayIterator.cpp
runtime/JSBoundFunction.cpp
runtime/JSCJSValue.cpp
runtime/JSCell.cpp
runtime/JSDataView.cpp
runtime/JSDataViewPrototype.cpp
runtime/JSDateMath.cpp
runtime/JSFunction.cpp
runtime/JSGlobalObject.cpp
runtime/JSGlobalObjectFunctions.cpp
runtime/JSLock.cpp
runtime/JSNotAnObject.cpp
runtime/JSONObject.cpp
runtime/JSPromise.cpp
runtime/JSPromiseConstructor.cpp
weinig@apple.com
committed
runtime/JSPromiseDeferred.cpp
runtime/JSPromiseFunctions.cpp
runtime/JSPromiseReaction.cpp
runtime/JSPropertyNameIterator.cpp
runtime/JSScope.cpp
runtime/JSSegmentedVariableObject.cpp
runtime/JSString.cpp
benjamin@webkit.org
committed
runtime/JSStringJoiner.cpp
runtime/JSSymbolTableObject.cpp
runtime/JSTypedArrayConstructors.cpp
runtime/JSTypedArrayPrototypes.cpp
runtime/JSTypedArrays.cpp
runtime/JSVariableObject.cpp
runtime/JSWrapperObject.cpp
runtime/LiteralParser.cpp
runtime/Lookup.cpp
runtime/MapIteratorConstructor.cpp
runtime/MapIteratorPrototype.cpp
runtime/MathObject.cpp
runtime/MemoryStatistics.cpp
runtime/NameConstructor.cpp
runtime/NameInstance.cpp
runtime/NamePrototype.cpp
runtime/NativeErrorConstructor.cpp
runtime/NativeErrorPrototype.cpp
runtime/NumberConstructor.cpp
runtime/NumberObject.cpp
runtime/NumberPrototype.cpp
runtime/ObjectConstructor.cpp
runtime/ObjectPrototype.cpp
runtime/Operations.cpp
runtime/PropertyDescriptor.cpp
runtime/PropertyNameArray.cpp
runtime/PropertySlot.cpp
runtime/PropertyTable.cpp
runtime/PrototypeMap.cpp
runtime/RegExp.cpp
runtime/RegExpCache.cpp
barraclough@apple.com
committed
runtime/RegExpCachedResult.cpp
barraclough@apple.com
committed
runtime/RegExpMatchesArray.cpp
runtime/RegExpObject.cpp
runtime/RegExpPrototype.cpp
runtime/SetIteratorConstructor.cpp
runtime/SetIteratorPrototype.cpp
runtime/SimpleTypedArrayController.cpp
runtime/SmallStrings.cpp
runtime/StrictEvalActivation.cpp
runtime/StringConstructor.cpp
runtime/StringObject.cpp
runtime/StringPrototype.cpp
runtime/StringRecursionChecker.cpp
runtime/Structure.cpp
runtime/StructureChain.cpp
runtime/SymbolTable.cpp
fpizlo@apple.com
committed
runtime/TestRunnerUtils.cpp
runtime/TypedArrayController.cpp
runtime/TypedArrayType.cpp
runtime/VMEntryScope.cpp
mark.lam@apple.com
committed
runtime/Watchdog.cpp
runtime/WatchdogNone.cpp
runtime/WeakMapConstructor.cpp
runtime/WeakMapData.cpp
runtime/WeakMapPrototype.cpp
tools/CodeProfile.cpp
tools/CodeProfiling.cpp
yarr/YarrCanonicalizeUCS2.cpp
yarr/YarrInterpreter.cpp
yarr/YarrJIT.cpp
yarr/YarrSyntaxChecker.cpp
set(JavaScriptCore_LUT_FILES
runtime/ArrayConstructor.cpp
runtime/ArrayPrototype.cpp
runtime/BooleanPrototype.cpp
runtime/DateConstructor.cpp
runtime/DatePrototype.cpp
runtime/ErrorPrototype.cpp
runtime/JSGlobalObject.cpp
runtime/JSONObject.cpp
runtime/JSPromiseConstructor.cpp
runtime/JSPromisePrototype.cpp
runtime/NumberConstructor.cpp
runtime/NumberPrototype.cpp
runtime/RegExpConstructor.cpp
runtime/RegExpObject.cpp
runtime/RegExpPrototype.cpp
runtime/StringConstructor.cpp
set(JavaScriptCore_LIBRARIES
if (WTF_USE_ICU_UNICODE)
list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
${ICU_INCLUDE_DIRS}
)
list(APPEND JavaScriptCore_LIBRARIES
${ICU_I18N_LIBRARIES}
)
endif ()
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
if (WTF_USE_UDIS86)
set(UDIS_GEN_DEP
disassembler/udis86/ud_opcode.py
disassembler/udis86/ud_optable.py
)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.c ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
DEPENDS ${UDIS_GEN_DEP}
WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/disassembler/udis86/itab.py ${JAVASCRIPTCORE_DIR}/disassembler/udis86/optable.xml
VERBATIM)
list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
${JAVASCRIPTCORE_DIR}/disassembler/udis86
)
list(APPEND JavaScriptCore_HEADERS
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
)
list(APPEND JavaScriptCore_SOURCES
disassembler/udis86/udis86.c
disassembler/udis86/udis86_decode.c
disassembler/udis86/udis86_input.c
disassembler/udis86/udis86_itab_holder.c
disassembler/udis86/udis86_syn-att.c
disassembler/udis86/udis86_syn-intel.c
disassembler/udis86/udis86_syn.c
)
endif ()
# We cannot check for RUBY_FOUND because it is set only when the full package is installed and
# the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro
# for finding the only Ruby interpreter.
if (NOT RUBY_EXECUTABLE)
message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.")
endif ()
llint/LowLevelInterpreter.asm
llint/LowLevelInterpreter32_64.asm
llint/LowLevelInterpreter64.asm
)
offlineasm/ast.rb
offlineasm/backends.rb
offlineasm/cloop.rb
offlineasm/config.rb
offlineasm/instructions.rb
offlineasm/offsets.rb
offlineasm/opt.rb
offlineasm/parser.rb
offlineasm/registers.rb
offlineasm/self_hash.rb
offlineasm/settings.rb
offlineasm/transform.rb
offlineasm/x86.rb
)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}
COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
VERBATIM)
# We add the header file directly to the ADD_EXECUTABLE call instead of setting the
# OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb may
# not regenerate it in case the hash it calculates does not change.
# In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMAND above have
# changed the command will always be called because the mtime of LLIntDesiredOffsets.h will
# always be older than that of its dependencies.
# Additionally, setting the OBJECT_DEPENDS property will make LLIntDesiredOffsets.h a Makefile
# dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
# actually be run twice!
add_executable(LLIntOffsetsExtractor
${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
)
target_link_libraries(LLIntOffsetsExtractor WTF)
commit-queue@webkit.org
committed
# The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
# LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
# that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
# LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
# running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
# after every asm.rb run.
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
commit-queue@webkit.org
committed
COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
# The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
# the .cpp files below is similar to the one in the previous comment. However, since these .cpp
# files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
# since it is used in the add_library() call at the end of this file.
list(APPEND JavaScriptCore_HEADERS
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
)
list(APPEND JavaScriptCore_SOURCES
llint/LLIntCLoop.cpp
llint/LLIntData.cpp
llint/LLIntExceptions.cpp
llint/LLIntSlowPaths.cpp
llint/LLIntThunks.cpp
llint/LowLevelInterpreter.cpp
)
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
if (ENABLE_FTL_JIT)
if (NOT LLVM_STATIC_LIBRARIES)
message(FATAL_ERROR "No LLVM libs found, but FTL is enabled. Stopping build.")
endif ()
# Configure llvmForJSC.so
set(llvmForJSC_SOURCES
llvm/library/LLVMAnchor.cpp
llvm/library/LLVMExports.cpp
llvm/library/LLVMOverrides.cpp
)
set(llvmForJSC_INCLUDE_DIRECTORIES
${LLVM_INCLUDE_DIRS}
"${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
DEPENDS ${LLVM_STATIC_LIBRARIES}
COMMAND ${CMAKE_COMMAND} -E touch ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h
VERBATIM)
WEBKIT_WRAP_SOURCELIST(${llvmForJSC_SOURCES})
add_library(llvmForJSC SHARED ${llvmForJSC_SOURCES} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h)
target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} "pthread" "dl")
# Added extra items for JavaScriptCore
list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
${LLVM_INCLUDE_DIRS}
)
list(APPEND JavaScriptCore_SOURCES
llvm/InitializeLLVM.cpp
llvm/InitializeLLVMPOSIX.cpp
llvm/InitializeLLVMLinux.cpp
llvm/LLVMAPI.cpp
dfg/DFGToFTLDeferredCompilationCallback.cpp
dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp
disassembler/LLVMDisassembler.cpp
disassembler/X86Disassembler.cpp
ftl/FTLAbstractHeap.cpp
ftl/FTLAbstractHeapRepository.cpp
ftl/FTLCapabilities.cpp
ftl/FTLCommonValues.cpp
ftl/FTLCompile.cpp
ftl/FTLExitArgument.cpp
ftl/FTLExitArgumentForOperand.cpp
ftl/FTLExitThunkGenerator.cpp
ftl/FTLExitValue.cpp
ftl/FTLFail.cpp
ftl/FTLForOSREntryJITCode.cpp
ftl/FTLInlineCacheSize.cpp
ftl/FTLIntrinsicRepository.cpp
ftl/FTLJITCode.cpp
ftl/FTLJITFinalizer.cpp
ftl/FTLLink.cpp
ftl/FTLLocation.cpp
ftl/FTLLowerDFGToLLVM.cpp
ftl/FTLOSREntry.cpp
ftl/FTLOSRExit.cpp
ftl/FTLOSRExitCompiler.cpp
ftl/FTLOutput.cpp
ftl/FTLSaveRestore.cpp
ftl/FTLSlowPathCall.cpp
ftl/FTLSlowPathCallKey.cpp
ftl/FTLStackMaps.cpp
ftl/FTLState.cpp
ftl/FTLThunks.cpp
ftl/FTLValueFormat.cpp
)
endif ()
paroga@webkit.org
committed
set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
macro(GENERATE_HASH_LUT _input _output)
add_custom_command(
OUTPUT ${_output}
DEPENDS ${HASH_LUT_GENERATOR} ${_input}
COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
VERBATIM)
list(APPEND JavaScriptCore_HEADERS ${_output})
endmacro()
# GENERATOR 1-A: LUT creator
foreach (_file ${JavaScriptCore_LUT_FILES})
get_filename_component(_name ${_file} NAME_WE)
paroga@webkit.org
committed
GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
joepeck@webkit.org
committed
bindings
bytecode
debugger
heap
joepeck@webkit.org
committed
inspector
joepeck@webkit.org
committed
inspector/agents
interpreter
jit
llint
parser
profiler
runtime
yarr
set(JavaScriptCore_FORWARDING_HEADERS_FILES
API/APICast.h
API/APIShims.h
API/JSBase.h
API/JSCTestRunnerUtils.h
API/JSContextRef.h
API/JSContextRefPrivate.h
API/JSObjectRef.h
API/JSObjectRefPrivate.h
oliver@apple.com
committed
API/JSScriptRefPrivate.h
API/JSStringRef.h
API/JSStringRefBSTR.h
API/JSValueRef.h
API/JSWeakObjectMapRefInternal.h
API/JSWeakObjectMapRefPrivate.h
API/JavaScript.h
API/JavaScriptCore.h
API/OpaqueJSString.h
API/WebKitAvailability.h
benjamin@webkit.org
committed
assembler/LinkBuffer.h
assembler/MacroAssembler.h
assembler/MacroAssemblerCodeRef.h
jit/GPRInfo.h
runtime/VM.h
# GENERATOR 1-B: particular LUT creator (for 1 file only)
paroga@webkit.org
committed
GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
#GENERATOR: "RegExpJitTables.h": tables used by Yarr
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
paroga@webkit.org
committed
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
paroga@webkit.org
committed
ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
#GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
paroga@webkit.org
committed
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
paroga@webkit.org
committed
ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
joepeck@webkit.org
committed
# Inspector Interfaces
set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
set(JavaScriptCore_INSPECTOR_DOMAINS
joepeck@webkit.org
committed
inspector/protocol/Debugger.json
inspector/protocol/GenericTypes.json
inspector/protocol/InspectorDomain.json
joepeck@webkit.org
committed
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
inspector/protocol/Runtime.json
)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
MAIN_DEPENDENCY ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py
DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JAVASCRIPTCORE_DIR}/inspector/protocol > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
VERBATIM)
# Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h
MAIN_DEPENDENCY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json
DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspector.py ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspectorStrings.py
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_JAVASCRIPTCORE_DIR}" --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
VERBATIM)
list(APPEND JavaScriptCore_SOURCES
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.cpp
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.cpp
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.cpp
)
list(APPEND JavaScriptCore_HEADERS
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h
${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h
)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
VERBATIM)
list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
joepeck@webkit.org
committed
if (WTF_CPU_ARM)
list(APPEND JavaScriptCore_SOURCES
assembler/ARMAssembler.cpp
assembler/ARMv7Assembler.cpp
assembler/MacroAssemblerARM.cpp
)
if (MSVC AND ENABLE_JIT)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_jit_stubs
DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubsARM.h
DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp
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
VERBATIM)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
MAIN_DEPENDENCY ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm
COMMAND armasm -nologo ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj
VERBATIM)
list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj)
endif ()
elseif (WTF_CPU_MIPS)
elseif (WTF_CPU_SH4)
elseif (WTF_CPU_X86)
list(APPEND JavaScriptCore_SOURCES
assembler/MacroAssemblerX86Common.cpp
)
elseif (WTF_CPU_X86_64)
if (MSVC AND ENABLE_JIT)
add_custom_command(
OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
VERBATIM)
list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
endif ()
list(APPEND JavaScriptCore_SOURCES
assembler/MacroAssemblerX86Common.cpp
)
else ()
message(FATAL_ERROR "Unknown CPU")
endif ()
WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${JavaScriptCore_FORWARDING_HEADERS_FILES})
add_subdirectory(shell)
WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
include_directories(${JavaScriptCore_INCLUDE_DIRECTORIES})
paroga@webkit.org
committed
add_definitions(-DSTATICALLY_LINKED_WITH_WTF)
add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
paroga@webkit.org
committed
set_target_properties(JavaScriptCore PROPERTIES COMPILE_DEFINITIONS "BUILDING_JavaScriptCore")
set_target_properties(JavaScriptCore PROPERTIES FOLDER "JavaScriptCore")
set_target_properties(JavaScriptCore PROPERTIES LINK_INTERFACE_LIBRARIES "")
if (JavaScriptCore_OUTPUT_NAME)
set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME ${JavaScriptCore_OUTPUT_NAME})
endif ()
if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
if (ENABLE_FTL_JIT)
add_dependencies(JavaScriptCore llvmForJSC)
endif ()