-SET(JavaScriptCore_INCLUDE_DIRECTORIES
+set(JavaScriptCore_INCLUDE_DIRECTORIES
"${CMAKE_BINARY_DIR}"
"${JAVASCRIPTCORE_DIR}"
"${JAVASCRIPTCORE_DIR}/API"
"${JAVASCRIPTCORE_DIR}/bytecode"
"${JAVASCRIPTCORE_DIR}/bytecompiler"
"${JAVASCRIPTCORE_DIR}/dfg"
+ "${JAVASCRIPTCORE_DIR}/disassembler"
"${JAVASCRIPTCORE_DIR}/heap"
"${JAVASCRIPTCORE_DIR}/debugger"
"${JAVASCRIPTCORE_DIR}/interpreter"
"${CMAKE_SOURCE_DIR}/Source"
)
-SET(JavaScriptCore_SOURCES
+set(JavaScriptCore_SOURCES
API/JSBase.cpp
API/JSCallbackConstructor.cpp
API/JSCallbackFunction.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/MethodCallLinkInfo.cpp
- bytecode/MethodCallLinkStatus.cpp
bytecode/MethodOfGettingAValueProfile.cpp
bytecode/Opcode.cpp
bytecode/PolymorphicPutByIdList.cpp
- bytecode/PredictedType.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/DFGCorrectableJumpPoint.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/DFGRedundantPhiEliminationPhase.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/WeakSet.cpp
- heap/WeakHandleOwner.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/RegisterFile.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/Profiler.cpp
+ profiler/LegacyProfiler.cpp
runtime/ArgList.cpp
runtime/Arguments.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/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/JSDateMath.cpp
runtime/JSFunction.cpp
runtime/JSBoundFunction.cpp
- runtime/JSGlobalData.cpp
+ runtime/VM.cpp
runtime/JSGlobalObject.cpp
runtime/JSGlobalObjectFunctions.cpp
- runtime/JSGlobalThis.cpp
+ runtime/JSProxy.cpp
runtime/JSLock.cpp
runtime/JSNotAnObject.cpp
runtime/JSObject.cpp
runtime/JSONObject.cpp
runtime/JSPropertyNameIterator.cpp
- runtime/JSStaticScopeObject.cpp
+ runtime/JSSegmentedVariableObject.cpp
+ runtime/JSNameScope.cpp
+ runtime/JSWithScope.cpp
+ runtime/JSScope.cpp
runtime/JSString.cpp
runtime/JSStringJoiner.cpp
- runtime/JSValue.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/PropertyDescriptor.cpp
runtime/PropertyNameArray.cpp
runtime/PropertySlot.cpp
+ runtime/PropertyTable.cpp
+ runtime/PrototypeMap.cpp
runtime/RegExp.cpp
runtime/RegExpCache.cpp
runtime/RegExpConstructor.cpp
runtime/RegExpMatchesArray.cpp
runtime/RegExpObject.cpp
runtime/RegExpPrototype.cpp
- runtime/ScopeChain.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/TimeoutChecker.cpp
- runtime/UString.cpp
+ runtime/SymbolTable.cpp
+ runtime/Watchdog.cpp
+ runtime/WatchdogNone.cpp
tools/CodeProfile.cpp
tools/CodeProfiling.cpp
yarr/YarrSyntaxChecker.cpp
)
-SET(JavaScriptCore_LUT_FILES
+set(JavaScriptCore_LUT_FILES
runtime/ArrayConstructor.cpp
runtime/ArrayPrototype.cpp
runtime/BooleanPrototype.cpp
runtime/JSGlobalObject.cpp
runtime/JSONObject.cpp
runtime/MathObject.cpp
+ runtime/NamePrototype.cpp
runtime/NumberConstructor.cpp
runtime/NumberPrototype.cpp
runtime/ObjectConstructor.cpp
- runtime/ObjectPrototype.cpp
runtime/RegExpConstructor.cpp
runtime/RegExpObject.cpp
runtime/RegExpPrototype.cpp
runtime/StringConstructor.cpp
- runtime/StringPrototype.cpp
)
-SET(JavaScriptCore_LIBRARIES
- ${WTF_LIBRARY_NAME}
+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(${JAVASCRIPTCORE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
- LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
-ENDFOREACH ()
+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(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
-LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
+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(
+add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
- MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
- COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${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(${JAVASCRIPTCORE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
+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(
+add_custom_command(
OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
- MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py
- COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/KeywordLookupGenerator.py ${JAVASCRIPTCORE_DIR}/parser/Keywords.table > ${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(${JAVASCRIPTCORE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
+ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
-IF (WTF_CPU_ARM)
- LIST(APPEND JavaScriptCore_SOURCES
+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 ()
+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)
+add_subdirectory(shell)
WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
-INCLUDE_DIRECTORIES(${JavaScriptCore_INCLUDE_DIRECTORIES})
-ADD_DEFINITIONS(-DBUILDING_JavaScriptCore)
-ADD_LIBRARY(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
-TARGET_LINK_LIBRARIES(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARIES})
-SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES FOLDER "JavaScriptCore")
-SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES LINK_INTERFACE_LIBRARIES "")
-
-IF (JavaScriptCore_LINK_FLAGS)
- ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS "${JavaScriptCore_LINK_FLAGS}")
-ENDIF ()
-
-IF (SHARED_CORE)
- SET_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
- INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION "${LIB_INSTALL_DIR}")
-ENDIF ()
+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 ()