summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/CMakeLists.txt')
-rw-r--r--JavaScriptCore/CMakeLists.txt276
1 files changed, 276 insertions, 0 deletions
diff --git a/JavaScriptCore/CMakeLists.txt b/JavaScriptCore/CMakeLists.txt
new file mode 100644
index 0000000..f0281e4
--- /dev/null
+++ b/JavaScriptCore/CMakeLists.txt
@@ -0,0 +1,276 @@
+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}/debugger"
+ "${JAVASCRIPTCORE_DIR}/interpreter"
+ "${JAVASCRIPTCORE_DIR}/jit"
+ "${JAVASCRIPTCORE_DIR}/parser"
+ "${JAVASCRIPTCORE_DIR}/pcre"
+ "${JAVASCRIPTCORE_DIR}/profiler"
+ "${JAVASCRIPTCORE_DIR}/runtime"
+ "${JAVASCRIPTCORE_DIR}/yarr"
+ "${WTF_INCLUDE_DIRECTORIES}"
+ "${CMAKE_SOURCE_DIR}"
+)
+
+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/JSStringRef.cpp
+ API/JSValueRef.cpp
+ API/JSWeakObjectMapRefPrivate.cpp
+ API/OpaqueJSString.cpp
+
+ bytecode/CodeBlock.cpp
+ bytecode/JumpTable.cpp
+ bytecode/Opcode.cpp
+ bytecode/SamplingTool.cpp
+ bytecode/StructureStubInfo.cpp
+
+ bytecompiler/BytecodeGenerator.cpp
+ bytecompiler/NodesCodegen.cpp
+
+ debugger/Debugger.cpp
+ debugger/DebuggerActivation.cpp
+ debugger/DebuggerCallFrame.cpp
+
+ interpreter/CallFrame.cpp
+ interpreter/Interpreter.cpp
+ interpreter/RegisterFile.cpp
+
+ jit/ExecutableAllocator.cpp
+ jit/ExecutableAllocatorFixedVMPool.cpp
+ jit/ExecutableAllocatorPosix.cpp
+ jit/ExecutableAllocatorSymbian.cpp
+ jit/ExecutableAllocatorWin.cpp
+ jit/JITStubs.cpp
+ jit/JITOpcodes.cpp
+ jit/JITOpcodes32_64.cpp
+ jit/JITPropertyAccess.cpp
+ jit/JITPropertyAccess32_64.cpp
+ jit/JITArithmetic.cpp
+ jit/JITCall.cpp
+ jit/JIT.cpp
+
+ parser/Lexer.cpp
+ parser/Nodes.cpp
+ parser/Parser.cpp
+ parser/ParserArena.cpp
+
+ pcre/pcre_compile.cpp
+ pcre/pcre_exec.cpp
+ pcre/pcre_tables.cpp
+ pcre/pcre_ucp_searchfuncs.cpp
+ pcre/pcre_xclass.cpp
+
+ profiler/Profile.cpp
+ profiler/ProfileGenerator.cpp
+ profiler/ProfileNode.cpp
+ profiler/Profiler.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/Collector.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/FunctionPrototype.cpp
+ runtime/GetterSetter.cpp
+ runtime/GlobalEvalFunction.cpp
+ runtime/Identifier.cpp
+ runtime/InitializeThreading.cpp
+ runtime/InternalFunction.cpp
+ runtime/JSActivation.cpp
+ runtime/JSAPIValueWrapper.cpp
+ runtime/JSArray.cpp
+ runtime/JSByteArray.cpp
+ runtime/JSCell.cpp
+ runtime/JSFunction.cpp
+ runtime/JSGlobalData.cpp
+ runtime/JSGlobalObject.cpp
+ runtime/JSGlobalObjectFunctions.cpp
+ runtime/JSImmediate.cpp
+ runtime/JSLock.cpp
+ runtime/JSNotAnObject.cpp
+ runtime/JSNumberCell.cpp
+ runtime/JSObject.cpp
+ runtime/JSONObject.cpp
+ runtime/JSPropertyNameIterator.cpp
+ runtime/JSStaticScopeObject.cpp
+ runtime/JSString.cpp
+ runtime/JSValue.cpp
+ runtime/JSVariableObject.cpp
+ runtime/JSWrapperObject.cpp
+ runtime/JSZombie.cpp
+ runtime/LiteralParser.cpp
+ runtime/Lookup.cpp
+ runtime/MarkStack.cpp
+ runtime/MathObject.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/PrototypeFunction.cpp
+ runtime/RegExp.cpp
+ runtime/RegExpConstructor.cpp
+ runtime/RegExpObject.cpp
+ runtime/RegExpPrototype.cpp
+ runtime/RopeImpl.cpp
+ runtime/ScopeChain.cpp
+ runtime/SmallStrings.cpp
+ runtime/StringConstructor.cpp
+ runtime/StringObject.cpp
+ runtime/StringPrototype.cpp
+ runtime/Structure.cpp
+ runtime/StructureChain.cpp
+ runtime/TimeoutChecker.cpp
+ runtime/UString.cpp
+
+ yarr/RegexCompiler.cpp
+ yarr/RegexInterpreter.cpp
+ yarr/RegexJIT.cpp
+
+ wtf/DateMath.cpp
+)
+SET(JavaScriptCore_HEADERS )
+
+SET(JavaScriptCore_LUT_FILES
+ runtime/ArrayPrototype.cpp
+ runtime/DatePrototype.cpp
+ runtime/JSONObject.cpp
+ runtime/MathObject.cpp
+ runtime/NumberConstructor.cpp
+ runtime/RegExpConstructor.cpp
+ runtime/RegExpObject.cpp
+ runtime/StringPrototype.cpp
+)
+
+SET(JavaScriptCore_LIBRARIES
+ ${WTF_LIBRARY_NAME}
+)
+
+
+# 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_DIR}/${_name}.lut.h)
+ LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/${_name}.lut.h)
+ENDFOREACH ()
+
+
+# GENERATOR 1-B: particular LUT creator (for 1 file only)
+GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
+LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/Lexer.lut.h)
+
+# GENERATOR 2: bison grammar
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${DERIVED_SOURCES_DIR}/Grammar.cpp ${DERIVED_SOURCES_DIR}/Grammar.h
+ MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/parser/Grammar.y
+ COMMAND ${BISON_EXECUTABLE} -d -p jscyy ${JAVASCRIPTCORE_DIR}/parser/Grammar.y -o ${DERIVED_SOURCES_DIR}/Grammar.cpp --defines=${DERIVED_SOURCES_DIR}/Grammar.h
+ COMMENT "[BISON][JSCYY] Building parser with bison"
+ VERBATIM)
+LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/Grammar.h)
+LIST(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/Grammar.cpp)
+
+
+# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources)
+IF (MSVC)
+ SET(JSC_DFTABLES_PREPROCESSOR --preprocessor=cl.exe)
+ENDIF ()
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${DERIVED_SOURCES_DIR}/chartables.c
+ MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/pcre/dftables
+ COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/pcre/dftables ${JSC_DFTABLES_PREPROCESSOR} ${DERIVED_SOURCES_DIR}/chartables.c
+ VERBATIM)
+ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/pcre/pcre_tables.cpp ${DERIVED_SOURCES_DIR}/chartables.c)
+
+
+#GENERATOR: "RegExpJitTables.h": tables used by Yarr
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${DERIVED_SOURCES_DIR}/RegExpJitTables.h
+ MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
+ COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${DERIVED_SOURCES_DIR}/RegExpJitTables.h
+ VERBATIM)
+ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/RegexCompiler.cpp ${DERIVED_SOURCES_DIR}/RegExpJitTables.h)
+
+
+
+IF (WTF_CPU_ARM)
+ LIST(APPEND JavaScriptCore_SOURCES
+ assembler/ARMAssembler.cpp
+ assembler/MacroAssemblerARM.cpp
+ )
+ELSEIF (WTF_CPU_MIPS)
+ELSEIF (WTF_CPU_X86)
+ELSEIF (WTF_CPU_X86_64)
+ELSE ()
+ MESSAGE(FATAL_ERROR "Unknown CPU")
+ENDIF ()
+
+
+INCLUDE_IF_EXISTS(${JAVASCRIPTCORE_DIR}/CMakeLists${PORT}.txt)
+
+
+# Declare source groups for Visual Studio folders
+SOURCE_GROUP(API "API/")
+SOURCE_GROUP(assembler "assembler/")
+SOURCE_GROUP(bytecode "bytecode/")
+SOURCE_GROUP(bytecompiler "bytecompiler/")
+SOURCE_GROUP(debugger "debugger/")
+SOURCE_GROUP(bytecode "bytecode/")
+SOURCE_GROUP(interpreter "interpreter/")
+SOURCE_GROUP(jit "jit/")
+SOURCE_GROUP(parser "parser/")
+SOURCE_GROUP(pcre "pcre/")
+SOURCE_GROUP(profiler "profiler/")
+SOURCE_GROUP(runtime "runtime/")
+SOURCE_GROUP(yarr "yarr/")
+SOURCE_GROUP(wtf "wtf/")
+
+ADD_SUBDIRECTORY(wtf)
+ADD_SUBDIRECTORY(jsc)
+
+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})
+ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS ${JavaScriptCore_LINK_FLAGS})
+
+INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION lib)
+