123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553 |
- set(JavaScriptCore_INCLUDE_DIRECTORIES
- "${CMAKE_BINARY_DIR}"
- "${JAVASCRIPTCORE_DIR}"
- "${JAVASCRIPTCORE_DIR}/API"
- "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
- "${JAVASCRIPTCORE_DIR}/assembler"
- "${JAVASCRIPTCORE_DIR}/bytecode"
- "${JAVASCRIPTCORE_DIR}/bytecompiler"
- "${JAVASCRIPTCORE_DIR}/dfg"
- "${JAVASCRIPTCORE_DIR}/disassembler"
- "${JAVASCRIPTCORE_DIR}/heap"
- "${JAVASCRIPTCORE_DIR}/debugger"
- "${JAVASCRIPTCORE_DIR}/interpreter"
- "${JAVASCRIPTCORE_DIR}/jit"
- "${JAVASCRIPTCORE_DIR}/llint"
- "${JAVASCRIPTCORE_DIR}/parser"
- "${JAVASCRIPTCORE_DIR}/profiler"
- "${JAVASCRIPTCORE_DIR}/runtime"
- "${JAVASCRIPTCORE_DIR}/tools"
- "${JAVASCRIPTCORE_DIR}/yarr"
- "${WTF_DIR}"
- "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
- "${CMAKE_SOURCE_DIR}/Source"
- )
- set(JavaScriptCore_SOURCES
- API/JSBase.cpp
- API/JSCallbackConstructor.cpp
- API/JSCallbackFunction.cpp
- API/JSCallbackObject.cpp
- API/JSClassRef.cpp
- API/JSContextRef.cpp
- API/JSObjectRef.cpp
- API/JSProfilerPrivate.cpp
- API/JSScriptRef.cpp
- API/JSStringRef.cpp
- API/JSValueRef.cpp
- API/JSWeakObjectMapRefPrivate.cpp
- API/OpaqueJSString.cpp
- assembler/MacroAssembler.cpp
- assembler/LinkBuffer.cpp
- bytecode/ArrayAllocationProfile.cpp
- bytecode/ArrayProfile.cpp
- bytecode/CallLinkInfo.cpp
- bytecode/CallLinkStatus.cpp
- bytecode/CodeBlock.cpp
- bytecode/CodeBlockHash.cpp
- bytecode/CodeOrigin.cpp
- bytecode/CodeType.cpp
- bytecode/DFGExitProfile.cpp
- bytecode/ExecutionCounter.cpp
- bytecode/ExitKind.cpp
- bytecode/GetByIdStatus.cpp
- bytecode/JumpTable.cpp
- bytecode/LazyOperandValueProfile.cpp
- bytecode/MethodOfGettingAValueProfile.cpp
- bytecode/Opcode.cpp
- bytecode/PolymorphicPutByIdList.cpp
- bytecode/PreciseJumpTargets.cpp
- bytecode/PutByIdStatus.cpp
- bytecode/SpeculatedType.cpp
- bytecode/ReduceWhitespace.cpp
- bytecode/ResolveGlobalStatus.cpp
- bytecode/SamplingTool.cpp
- bytecode/SpecialPointer.cpp
- bytecode/StructureStubClearingWatchpoint.cpp
- bytecode/StructureStubInfo.cpp
- bytecode/UnlinkedCodeBlock.cpp
- bytecode/Watchpoint.cpp
- bytecompiler/BytecodeGenerator.cpp
- bytecompiler/NodesCodegen.cpp
- dfg/DFGAbstractState.cpp
- dfg/DFGArgumentsSimplificationPhase.cpp
- dfg/DFGArrayMode.cpp
- dfg/DFGAssemblyHelpers.cpp
- dfg/DFGBackwardsPropagationPhase.cpp
- dfg/DFGByteCodeParser.cpp
- dfg/DFGCapabilities.cpp
- dfg/DFGCommon.cpp
- dfg/DFGCFAPhase.cpp
- dfg/DFGCFGSimplificationPhase.cpp
- dfg/DFGCPSRethreadingPhase.cpp
- dfg/DFGConstantFoldingPhase.cpp
- dfg/DFGCSEPhase.cpp
- dfg/DFGDCEPhase.cpp
- dfg/DFGDisassembler.cpp
- dfg/DFGDominators.cpp
- dfg/DFGDriver.cpp
- dfg/DFGEdge.cpp
- dfg/DFGFixupPhase.cpp
- dfg/DFGGraph.cpp
- dfg/DFGJITCompiler.cpp
- dfg/DFGLongLivedState.cpp
- dfg/DFGMinifiedNode.cpp
- dfg/DFGNode.cpp
- dfg/DFGNodeFlags.cpp
- dfg/DFGOSREntry.cpp
- dfg/DFGOSRExit.cpp
- dfg/DFGOSRExitCompiler.cpp
- dfg/DFGOSRExitCompiler32_64.cpp
- dfg/DFGOSRExitCompiler64.cpp
- dfg/DFGOSRExitJumpPlaceholder.cpp
- dfg/DFGOperations.cpp
- dfg/DFGPhase.cpp
- dfg/DFGPredictionPropagationPhase.cpp
- dfg/DFGPredictionInjectionPhase.cpp
- dfg/DFGRepatch.cpp
- dfg/DFGSpeculativeJIT.cpp
- dfg/DFGSpeculativeJIT32_64.cpp
- dfg/DFGSpeculativeJIT64.cpp
- dfg/DFGTypeCheckHoistingPhase.cpp
- dfg/DFGThunks.cpp
- dfg/DFGUnificationPhase.cpp
- dfg/DFGUseKind.cpp
- dfg/DFGValueSource.cpp
- dfg/DFGVariableAccessDataDump.cpp
- dfg/DFGVariableEvent.cpp
- dfg/DFGVariableEventStream.cpp
- dfg/DFGValidate.cpp
- dfg/DFGVirtualRegisterAllocationPhase.cpp
- disassembler/Disassembler.cpp
- heap/BlockAllocator.cpp
- heap/CopiedSpace.cpp
- heap/CopyVisitor.cpp
- heap/ConservativeRoots.cpp
- heap/DFGCodeBlocks.cpp
- heap/GCThread.cpp
- heap/GCThreadSharedData.cpp
- heap/HandleSet.cpp
- heap/HandleStack.cpp
- heap/Heap.cpp
- heap/HeapStatistics.cpp
- heap/HeapTimer.cpp
- heap/IncrementalSweeper.cpp
- heap/JITStubRoutineSet.cpp
- heap/MachineStackMarker.cpp
- heap/MarkedAllocator.cpp
- heap/MarkedBlock.cpp
- heap/MarkedSpace.cpp
- heap/MarkStack.cpp
- heap/SlotVisitor.cpp
- heap/SuperRegion.cpp
- heap/Weak.cpp
- heap/WeakBlock.cpp
- heap/WeakHandleOwner.cpp
- heap/WeakSet.cpp
- debugger/Debugger.cpp
- debugger/DebuggerActivation.cpp
- debugger/DebuggerCallFrame.cpp
- interpreter/AbstractPC.cpp
- interpreter/CallFrame.cpp
- interpreter/Interpreter.cpp
- interpreter/JSStack.cpp
- interpreter/VMInspector.cpp
- jit/ClosureCallStubRoutine.cpp
- jit/ExecutableAllocator.cpp
- jit/ExecutableAllocatorFixedVMPool.cpp
- jit/HostCallReturnValue.cpp
- jit/GCAwareJITStubRoutine.cpp
- jit/JITArithmetic32_64.cpp
- jit/JITArithmetic.cpp
- jit/JITCall32_64.cpp
- jit/JITCall.cpp
- jit/JITCode.cpp
- jit/JIT.cpp
- jit/JITDisassembler.cpp
- jit/JITExceptions.cpp
- jit/JITOpcodes32_64.cpp
- jit/JITOpcodes.cpp
- jit/JITPropertyAccess32_64.cpp
- jit/JITPropertyAccess.cpp
- jit/JITStubRoutine.cpp
- jit/JITStubs.cpp
- jit/JITThunks.cpp
- jit/JumpReplacementWatchpoint.cpp
- jit/ThunkGenerators.cpp
- parser/Lexer.cpp
- parser/Nodes.cpp
- parser/Parser.cpp
- parser/ParserArena.cpp
- parser/SourceProvider.cpp
- parser/SourceProviderCache.cpp
- profiler/ProfilerBytecode.cpp
- profiler/ProfilerBytecodeSequence.cpp
- profiler/ProfilerBytecodes.cpp
- profiler/ProfilerCompilation.cpp
- profiler/ProfilerCompilationKind.cpp
- profiler/ProfilerCompiledBytecode.cpp
- profiler/ProfilerDatabase.cpp
- profiler/ProfilerOrigin.cpp
- profiler/ProfilerOriginStack.cpp
- profiler/ProfilerOSRExit.cpp
- profiler/ProfilerOSRExitSite.cpp
- profiler/ProfilerProfiledBytecodes.cpp
- profiler/Profile.cpp
- profiler/ProfileGenerator.cpp
- profiler/ProfileNode.cpp
- profiler/LegacyProfiler.cpp
- runtime/ArgList.cpp
- runtime/Arguments.cpp
- runtime/ArrayConstructor.cpp
- runtime/ArrayPrototype.cpp
- runtime/BooleanConstructor.cpp
- runtime/BooleanObject.cpp
- runtime/BooleanPrototype.cpp
- runtime/CallData.cpp
- runtime/CodeCache.cpp
- runtime/CodeSpecializationKind.cpp
- runtime/CommonIdentifiers.cpp
- runtime/Completion.cpp
- runtime/ConstructData.cpp
- 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
- 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/JSActivation.cpp
- runtime/JSAPIValueWrapper.cpp
- runtime/JSArray.cpp
- runtime/JSCell.cpp
- runtime/JSDateMath.cpp
- runtime/JSFunction.cpp
- runtime/JSBoundFunction.cpp
- runtime/VM.cpp
- runtime/JSGlobalObject.cpp
- runtime/JSGlobalObjectFunctions.cpp
- runtime/JSProxy.cpp
- runtime/JSLock.cpp
- runtime/JSNotAnObject.cpp
- runtime/JSObject.cpp
- runtime/JSONObject.cpp
- runtime/JSPropertyNameIterator.cpp
- runtime/JSSegmentedVariableObject.cpp
- runtime/JSNameScope.cpp
- runtime/JSWithScope.cpp
- runtime/JSScope.cpp
- runtime/JSString.cpp
- runtime/JSStringJoiner.cpp
- runtime/JSSymbolTableObject.cpp
- runtime/JSCJSValue.cpp
- runtime/JSVariableObject.cpp
- runtime/JSWrapperObject.cpp
- runtime/LiteralParser.cpp
- runtime/Lookup.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/Options.cpp
- runtime/PropertyDescriptor.cpp
- runtime/PropertyNameArray.cpp
- runtime/PropertySlot.cpp
- runtime/PropertyTable.cpp
- runtime/PrototypeMap.cpp
- runtime/RegExp.cpp
- runtime/RegExpCache.cpp
- runtime/RegExpConstructor.cpp
- runtime/RegExpCachedResult.cpp
- runtime/RegExpMatchesArray.cpp
- runtime/RegExpObject.cpp
- runtime/RegExpPrototype.cpp
- runtime/SmallStrings.cpp
- runtime/SparseArrayValueMap.cpp
- runtime/StrictEvalActivation.cpp
- runtime/StringConstructor.cpp
- runtime/StringObject.cpp
- runtime/StringPrototype.cpp
- runtime/StringRecursionChecker.cpp
- runtime/Structure.cpp
- runtime/StructureRareData.cpp
- runtime/StructureChain.cpp
- runtime/SymbolTable.cpp
- runtime/Watchdog.cpp
- runtime/WatchdogNone.cpp
- tools/CodeProfile.cpp
- tools/CodeProfiling.cpp
- yarr/YarrCanonicalizeUCS2.cpp
- yarr/YarrPattern.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/MathObject.cpp
- runtime/NamePrototype.cpp
- runtime/NumberConstructor.cpp
- runtime/NumberPrototype.cpp
- runtime/ObjectConstructor.cpp
- runtime/RegExpConstructor.cpp
- runtime/RegExpObject.cpp
- runtime/RegExpPrototype.cpp
- runtime/StringConstructor.cpp
- )
- set(JavaScriptCore_LIBRARIES
- WTF
- )
- if (WTF_USE_ICU_UNICODE)
- list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
- ${ICU_INCLUDE_DIRS}
- )
- list(APPEND JavaScriptCore_LIBRARIES
- ${ICU_I18N_LIBRARIES}
- )
- endif ()
- if (ENABLE_LLINT)
- # 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 ()
- set(LLINT_ASM
- llint/LowLevelInterpreter.asm
- llint/LowLevelInterpreter32_64.asm
- llint/LowLevelInterpreter64.asm
- )
- set(OFFLINE_ASM
- offlineasm/arm.rb
- 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/risc.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)
- # 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
- COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
- VERBATIM)
- # 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/LLIntEntrypoints.cpp
- llint/LLIntExceptions.cpp
- llint/LLIntSlowPaths.cpp
- llint/LLIntThunks.cpp
- llint/LowLevelInterpreter.cpp
- )
- endif ()
- 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)
- GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
- endforeach ()
- set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
- assembler
- bytecode
- collector/handles
- debugger
- heap
- interpreter
- jit
- llint
- parser
- profiler
- runtime
- yarr
- )
- set(JavaScriptCore_FORWARDING_HEADERS_FILES
- API/APICast.h
- API/APIShims.h
- API/JavaScript.h
- API/JSBase.h
- API/JSContextRef.h
- API/JSContextRefPrivate.h
- API/JSObjectRef.h
- API/JSObjectRefPrivate.h
- API/JSScriptRefPrivate.h
- API/JSStringRef.h
- API/JSStringRefCF.h
- API/JSStringRefBSTR.h
- API/JSValueRef.h
- API/JavaScriptCore.h
- API/JSRetainPtr.h
- API/JSWeakObjectMapRefInternal.h
- API/JSWeakObjectMapRefPrivate.h
- API/JSRetainPtr.h
- API/OpaqueJSString.h
- API/WebKitAvailability.h
- )
- # GENERATOR 1-B: particular LUT creator (for 1 file only)
- 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
- 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
- VERBATIM)
- 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
- 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
- VERBATIM)
- ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
- if (WTF_CPU_ARM)
- list(APPEND JavaScriptCore_SOURCES
- assembler/ARMAssembler.cpp
- assembler/ARMv7Assembler.cpp
- assembler/MacroAssemblerARM.cpp
- )
- elseif (WTF_CPU_MIPS)
- elseif (WTF_CPU_X86)
- elseif (WTF_CPU_X86_64)
- 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})
- add_definitions(-DBUILDING_JavaScriptCore)
- add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
- target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
- 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 (SHARED_CORE)
- set_target_properties(JavaScriptCore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
- install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
- endif ()
|