| cmake_minimum_required(VERSION 3.12) |
| |
| include(WebKitCommon) |
| include(target/TargetWTF) |
| |
| set_property(DIRECTORY . PROPERTY FOLDER "JavaScriptCore") |
| |
| list(APPEND JavaScriptCore_UNIFIED_SOURCE_LIST_FILES |
| "Sources.txt" |
| ) |
| |
| set(JavaScriptCore_INCLUDE_DIRECTORIES |
| "${JavaScriptCore_FRAMEWORK_HEADERS_DIR}" |
| ) |
| |
| set(JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES |
| "${CMAKE_BINARY_DIR}" |
| "${JAVASCRIPTCORE_DIR}" |
| "${JAVASCRIPTCORE_DIR}/API" |
| "${JAVASCRIPTCORE_DIR}/assembler" |
| "${JAVASCRIPTCORE_DIR}/b3" |
| "${JAVASCRIPTCORE_DIR}/b3/air" |
| "${JAVASCRIPTCORE_DIR}/bindings" |
| "${JAVASCRIPTCORE_DIR}/builtins" |
| "${JAVASCRIPTCORE_DIR}/bytecode" |
| "${JAVASCRIPTCORE_DIR}/bytecompiler" |
| "${JAVASCRIPTCORE_DIR}/dfg" |
| "${JAVASCRIPTCORE_DIR}/disassembler" |
| "${JAVASCRIPTCORE_DIR}/disassembler/ARM64" |
| "${JAVASCRIPTCORE_DIR}/disassembler/zydis/Zydis" |
| "${JAVASCRIPTCORE_DIR}/domjit" |
| "${JAVASCRIPTCORE_DIR}/ftl" |
| "${JAVASCRIPTCORE_DIR}/heap" |
| "${JAVASCRIPTCORE_DIR}/debugger" |
| "${JAVASCRIPTCORE_DIR}/inspector" |
| "${JAVASCRIPTCORE_DIR}/inspector/agents" |
| "${JAVASCRIPTCORE_DIR}/inspector/augmentable" |
| "${JAVASCRIPTCORE_DIR}/inspector/remote" |
| "${JAVASCRIPTCORE_DIR}/interpreter" |
| "${JAVASCRIPTCORE_DIR}/jit" |
| "${JAVASCRIPTCORE_DIR}/llint" |
| "${JAVASCRIPTCORE_DIR}/parser" |
| "${JAVASCRIPTCORE_DIR}/profiler" |
| "${JAVASCRIPTCORE_DIR}/runtime" |
| "${JAVASCRIPTCORE_DIR}/tools" |
| "${JAVASCRIPTCORE_DIR}/wasm" |
| "${JAVASCRIPTCORE_DIR}/wasm/js" |
| "${JAVASCRIPTCORE_DIR}/yarr" |
| "${JavaScriptCore_DERIVED_SOURCES_DIR}" |
| "${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector" |
| "${JavaScriptCore_DERIVED_SOURCES_DIR}/runtime" |
| "${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr" |
| ) |
| |
| if (USE_CAPSTONE) |
| list(APPEND JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/capstone/Source/include") |
| endif () |
| |
| set(JavaScriptCore_OBJECT_LUT_SOURCES |
| runtime/ArrayConstructor.cpp |
| runtime/AsyncFromSyncIteratorPrototype.cpp |
| runtime/AsyncGeneratorPrototype.cpp |
| runtime/BigIntConstructor.cpp |
| runtime/BigIntPrototype.cpp |
| runtime/BooleanPrototype.cpp |
| runtime/DateConstructor.cpp |
| runtime/DatePrototype.cpp |
| runtime/ErrorPrototype.cpp |
| runtime/GeneratorPrototype.cpp |
| runtime/IntlCollatorConstructor.cpp |
| runtime/IntlCollatorPrototype.cpp |
| runtime/IntlDateTimeFormatConstructor.cpp |
| runtime/IntlDateTimeFormatPrototype.cpp |
| runtime/IntlDisplayNamesConstructor.cpp |
| runtime/IntlDisplayNamesPrototype.cpp |
| runtime/IntlListFormatConstructor.cpp |
| runtime/IntlListFormatPrototype.cpp |
| runtime/IntlLocalePrototype.cpp |
| runtime/IntlNumberFormatConstructor.cpp |
| runtime/IntlNumberFormatPrototype.cpp |
| runtime/IntlObject.cpp |
| runtime/IntlPluralRulesConstructor.cpp |
| runtime/IntlPluralRulesPrototype.cpp |
| runtime/IntlRelativeTimeFormatConstructor.cpp |
| runtime/IntlRelativeTimeFormatPrototype.cpp |
| runtime/IntlSegmentIteratorPrototype.cpp |
| runtime/IntlSegmenterConstructor.cpp |
| runtime/IntlSegmenterPrototype.cpp |
| runtime/IntlSegmentsPrototype.cpp |
| runtime/JSDataViewPrototype.cpp |
| runtime/JSGlobalObject.cpp |
| runtime/JSInternalPromiseConstructor.cpp |
| runtime/JSModuleLoader.cpp |
| runtime/JSONObject.cpp |
| runtime/JSPromiseConstructor.cpp |
| runtime/JSPromisePrototype.cpp |
| runtime/MapPrototype.cpp |
| runtime/NumberConstructor.cpp |
| runtime/NumberPrototype.cpp |
| runtime/ObjectConstructor.cpp |
| runtime/ReflectObject.cpp |
| runtime/RegExpConstructor.cpp |
| runtime/RegExpPrototype.cpp |
| runtime/RegExpStringIteratorPrototype.cpp |
| runtime/SetPrototype.cpp |
| runtime/ShadowRealmObject.cpp |
| runtime/ShadowRealmPrototype.cpp |
| runtime/StringConstructor.cpp |
| runtime/StringPrototype.cpp |
| runtime/SymbolConstructor.cpp |
| runtime/SymbolPrototype.cpp |
| runtime/TemporalCalendarConstructor.cpp |
| runtime/TemporalCalendarPrototype.cpp |
| runtime/TemporalDurationConstructor.cpp |
| runtime/TemporalDurationPrototype.cpp |
| runtime/TemporalInstantConstructor.cpp |
| runtime/TemporalInstantPrototype.cpp |
| runtime/TemporalNow.cpp |
| runtime/TemporalObject.cpp |
| runtime/TemporalPlainDateConstructor.cpp |
| runtime/TemporalPlainDatePrototype.cpp |
| runtime/TemporalPlainTimeConstructor.cpp |
| runtime/TemporalPlainTimePrototype.cpp |
| runtime/TemporalTimeZoneConstructor.cpp |
| runtime/TemporalTimeZonePrototype.cpp |
| |
| wasm/js/JSWebAssembly.cpp |
| wasm/js/JSToWasmICCallee.cpp |
| wasm/js/WebAssemblyCompileErrorConstructor.cpp |
| wasm/js/WebAssemblyCompileErrorPrototype.cpp |
| wasm/js/WebAssemblyExceptionConstructor.cpp |
| wasm/js/WebAssemblyExceptionPrototype.cpp |
| wasm/js/WebAssemblyGlobalConstructor.cpp |
| wasm/js/WebAssemblyGlobalPrototype.cpp |
| wasm/js/WebAssemblyInstanceConstructor.cpp |
| wasm/js/WebAssemblyInstancePrototype.cpp |
| wasm/js/WebAssemblyLinkErrorConstructor.cpp |
| wasm/js/WebAssemblyLinkErrorPrototype.cpp |
| wasm/js/WebAssemblyMemoryConstructor.cpp |
| wasm/js/WebAssemblyMemoryPrototype.cpp |
| wasm/js/WebAssemblyModuleConstructor.cpp |
| wasm/js/WebAssemblyModulePrototype.cpp |
| wasm/js/WebAssemblyRuntimeErrorConstructor.cpp |
| wasm/js/WebAssemblyRuntimeErrorPrototype.cpp |
| wasm/js/WebAssemblyTableConstructor.cpp |
| wasm/js/WebAssemblyTablePrototype.cpp |
| wasm/js/WebAssemblyTagConstructor.cpp |
| wasm/js/WebAssemblyTagPrototype.cpp |
| ) |
| |
| set(JavaScriptCore_FRAMEWORKS |
| WTF |
| ) |
| if (NOT USE_SYSTEM_MALLOC) |
| list(APPEND JavaScriptCore_FRAMEWORKS bmalloc) |
| endif () |
| |
| if (USE_CAPSTONE) |
| list(APPEND JavaScriptCore_LIBRARIES capstone) |
| endif () |
| |
| if (ATOMICS_REQUIRE_LIBATOMIC) |
| list(APPEND JavaScriptCore_LIBRARIES atomic) |
| endif () |
| |
| set(JavaScriptCore_SCRIPTS_SOURCES_DIR "${JAVASCRIPTCORE_DIR}/Scripts") |
| |
| # Globbing relies on the fact that generator-specific file names are prefixed with their directory. |
| # Top-level scripts should have a file extension, since they are invoked during the build. |
| |
| set(JavaScriptCore_SCRIPTS_SOURCES_PATHS |
| ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.pl |
| ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.py |
| ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/wkbuiltins/builtins*.py |
| ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/wkbuiltins/wkbuiltins.py |
| ) |
| |
| # The directory flattening performed below mirrors what the Mac port does with private headers. |
| |
| file(GLOB JavaScriptCore_SCRIPTS_SOURCES ${JavaScriptCore_SCRIPTS_SOURCES_PATHS}) |
| |
| foreach (_file ${JavaScriptCore_SCRIPTS_SOURCES}) |
| get_filename_component(_script "${_file}" NAME) |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_SCRIPTS_DIR}/${_script} |
| MAIN_DEPENDENCY ${_file} |
| WORKING_DIRECTORY ${JavaScriptCore_DERIVED_SOURCES_DIR} |
| COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_file} ${JavaScriptCore_SCRIPTS_DIR}/${_script} |
| VERBATIM) |
| list(APPEND JavaScriptCore_SCRIPTS ${JavaScriptCore_SCRIPTS_DIR}/${_script}) |
| endforeach () |
| |
| # This is the default build variant for Xcode builds. |
| set(BUILD_VARIANTS |
| "normal" |
| ) |
| |
| set(LLINT_ASM |
| llint/LowLevelInterpreter.asm |
| llint/LowLevelInterpreter32_64.asm |
| llint/LowLevelInterpreter64.asm |
| llint/WebAssembly.asm |
| llint/WebAssembly32_64.asm |
| llint/WebAssembly64.asm |
| ) |
| |
| set(OFFLINE_ASM |
| offlineasm/arm.rb |
| offlineasm/arm64.rb |
| offlineasm/arm64e.rb |
| offlineasm/asm.rb |
| offlineasm/ast.rb |
| offlineasm/backends.rb |
| offlineasm/cloop.rb |
| offlineasm/config.rb |
| offlineasm/instructions.rb |
| offlineasm/mips.rb |
| offlineasm/offsets.rb |
| offlineasm/opt.rb |
| offlineasm/parser.rb |
| offlineasm/registers.rb |
| offlineasm/risc.rb |
| offlineasm/riscv64.rb |
| offlineasm/self_hash.rb |
| offlineasm/settings.rb |
| offlineasm/transform.rb |
| offlineasm/x86.rb |
| ) |
| |
| set(GENERATOR |
| generator/Argument.rb |
| generator/Assertion.rb |
| generator/Checkpoints.rb |
| generator/DSL.rb |
| generator/Fits.rb |
| generator/GeneratedFile.rb |
| generator/Metadata.rb |
| generator/Opcode.rb |
| generator/OpcodeGroup.rb |
| generator/Options.rb |
| generator/Section.rb |
| generator/Template.rb |
| generator/Type.rb |
| generator/Wasm.rb |
| generator/main.rb |
| ) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitBytecodes.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeStructs.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeIndices.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmLLIntGeneratorInlines.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitWasm.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeDumperGenerated.cpp |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generator/main.rb |
| DEPENDS ${GENERATOR} bytecode/BytecodeList.rb ${JAVASCRIPTCORE_DIR}/wasm/wasm.json |
| COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generator/main.rb --bytecodes_h ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h --init_bytecodes_asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitBytecodes.asm --bytecode_structs_h ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeStructs.h --bytecode_indices_h ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeIndices.h ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.rb --wasm_json ${JAVASCRIPTCORE_DIR}/wasm/wasm.json --wasm_llint_generator_h ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmLLIntGeneratorInlines.h --init_wasm_llint ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitWasm.asm --bytecode_dumper ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeDumperGenerated.cpp |
| VERBATIM) |
| add_custom_target(Bytecodes DEPENDS "${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h") |
| |
| string(TIMESTAMP BUILD_TIME "%s") |
| |
| list(APPEND JavaScriptCore_HEADERS |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeStructs.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h |
| ) |
| |
| if (WIN32) |
| set(OFFLINE_ASM_BACKEND "X86_WIN, X86_64_WIN, C_LOOP_WIN") |
| else () |
| if (WTF_CPU_X86) |
| set(OFFLINE_ASM_BACKEND "X86") |
| elseif (WTF_CPU_X86_64) |
| set(OFFLINE_ASM_BACKEND "X86_64") |
| elseif (WTF_CPU_ARM64) |
| set(OFFLINE_ASM_BACKEND "ARM64") |
| elseif (ARM_THUMB2_DETECTED) |
| set(OFFLINE_ASM_BACKEND "ARMv7") |
| elseif (WTF_CPU_MIPS) |
| set(OFFLINE_ASM_BACKEND "MIPS") |
| elseif (WTF_CPU_RISCV64) |
| set(OFFLINE_ASM_BACKEND "RISCV64") |
| endif () |
| |
| if (NOT ENABLE_JIT) |
| if (ENABLE_C_LOOP) |
| set(OFFLINE_ASM_BACKEND "C_LOOP") |
| endif () |
| endif () |
| endif () |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/AirOpcode.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/AirOpcodeGenerated.h |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes |
| DEPENDS ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb |
| COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes VERBATIM |
| WORKING_DIRECTORY ${JavaScriptCore_DERIVED_SOURCES_DIR} |
| ) |
| |
| list(APPEND JavaScriptCore_HEADERS |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/AirOpcode.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/AirOpcodeGenerated.h |
| ) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredSettings.h |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_settings_extractor.rb |
| DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitBytecodes.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitWasm.asm |
| COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_settings_extractor.rb -I${JavaScriptCore_DERIVED_SOURCES_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredSettings.h ${OFFLINE_ASM_BACKEND} |
| VERBATIM) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredOffsets.h |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb |
| DEPENDS LLIntSettingsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitBytecodes.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitWasm.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/AirOpcode.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmOps.h |
| COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${JavaScriptCore_DERIVED_SOURCES_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntSettingsExtractor> ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredOffsets.h ${OFFLINE_ASM_BACKEND} ${BUILD_VARIANTS} |
| VERBATIM) |
| |
| # JSCBuiltins |
| |
| set(BUILTINS_GENERATOR_SCRIPTS |
| ${JavaScriptCore_SCRIPTS_DIR}/wkbuiltins.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generator.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_model.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_templates.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_header.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_header.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_implementation.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_header.py |
| ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_implementation.py |
| ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py |
| ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py |
| ) |
| |
| set(JavaScriptCore_BUILTINS_SOURCES |
| ${JAVASCRIPTCORE_DIR}/builtins/AsyncFromSyncIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ArrayConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ArrayIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ArrayPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/AsyncFunctionPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/AsyncIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/AsyncGeneratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/DatePrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/FunctionPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/GeneratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/GlobalObject.js |
| ${JAVASCRIPTCORE_DIR}/builtins/GlobalOperations.js |
| ${JAVASCRIPTCORE_DIR}/builtins/InternalPromiseConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/IteratorHelpers.js |
| ${JAVASCRIPTCORE_DIR}/builtins/IteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/MapIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/MapPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ModuleLoader.js |
| ${JAVASCRIPTCORE_DIR}/builtins/NumberConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ObjectConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/PromiseConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/PromiseOperations.js |
| ${JAVASCRIPTCORE_DIR}/builtins/PromisePrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ReflectObject.js |
| ${JAVASCRIPTCORE_DIR}/builtins/RegExpPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/RegExpStringIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/SetIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/SetPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/ShadowRealmPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/StringConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/StringIteratorPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/StringPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayConstructor.js |
| ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayPrototype.js |
| ${JAVASCRIPTCORE_DIR}/builtins/WebAssembly.js |
| ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js |
| ) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBuiltins.cpp ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBuiltins.h |
| MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py |
| DEPENDS ${JavaScriptCore_BUILTINS_SOURCES} ${BUILTINS_GENERATOR_SCRIPTS} |
| COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py --framework JavaScriptCore --output-directory ${JavaScriptCore_DERIVED_SOURCES_DIR} --combined ${JavaScriptCore_BUILTINS_SOURCES} |
| VERBATIM) |
| add_custom_target(JSCBuiltins DEPENDS "${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBuiltins.h") |
| |
| # We add the header files directly to the ADD_EXECUTABLE call instead of setting the |
| # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and |
| # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change. |
| # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have |
| # changed the command will always be called because the mtime of the .h files will |
| # always be older than that of their dependencies. |
| # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile |
| # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will |
| # actually be run multiple times! |
| |
| WEBKIT_EXECUTABLE_DECLARE(LLIntSettingsExtractor) |
| set(LLIntSettingsExtractor_SOURCES |
| ${JAVASCRIPTCORE_DIR}/llint/LLIntSettingsExtractor.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredSettings.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeStructs.h |
| ) |
| |
| set(LLIntSettingsExtractor_PRIVATE_INCLUDE_DIRECTORIES |
| $<TARGET_PROPERTY:JavaScriptCore,INCLUDE_DIRECTORIES> |
| ) |
| set(LLIntSettingsExtractor_FRAMEWORKS ${JavaScriptCore_FRAMEWORKS}) |
| set(LLIntSettingsExtractor_DEPENDENCIES JavaScriptCore_CopyHeaders) |
| WEBKIT_EXECUTABLE(LLIntSettingsExtractor) |
| |
| # LLIntSettingsExtractor target needs to have a direct or indirect |
| # dependency to Bytecodes target for CMake Visual Studio generator to |
| # eliminate duplicated custom commands. Otherwise, Bytecodes.h will be |
| # generated in both projects. |
| add_dependencies(LLIntSettingsExtractor Bytecodes) |
| |
| WEBKIT_EXECUTABLE_DECLARE(LLIntOffsetsExtractor) |
| set(LLIntOffsetsExtractor_SOURCES |
| ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/LLIntDesiredOffsets.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h ${JavaScriptCore_DERIVED_SOURCES_DIR}/BytecodeStructs.h |
| ) |
| |
| set(LLIntOffsetsExtractor_PRIVATE_INCLUDE_DIRECTORIES |
| $<TARGET_PROPERTY:JavaScriptCore,INCLUDE_DIRECTORIES> |
| ) |
| set(LLIntOffsetsExtractor_FRAMEWORKS ${JavaScriptCore_FRAMEWORKS}) |
| set(LLIntOffsetsExtractor_DEPENDENCIES JavaScriptCore_CopyHeaders JSCBuiltins) |
| WEBKIT_EXECUTABLE(LLIntOffsetsExtractor) |
| |
| # 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. |
| if (MSVC AND NOT ENABLE_C_LOOP) |
| set(LLIntOutput LowLevelInterpreterWin.asm) |
| set(OFFLINE_ASM_ARGS --assembler=MASM) |
| else () |
| set(LLIntOutput LLIntAssembly.h) |
| endif () |
| |
| if (CMAKE_SYSTEM_NAME MATCHES "Linux") |
| set(OFFLINE_ASM_ARGS --binary-format=ELF) |
| endif () |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput} |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb |
| DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitBytecodes.asm ${JavaScriptCore_DERIVED_SOURCES_DIR}/InitWasm.asm |
| COMMAND ${CMAKE_COMMAND} -E env CMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID} GCC_OFFLINEASM_SOURCE_MAP=${GCC_OFFLINEASM_SOURCE_MAP} ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${JavaScriptCore_DERIVED_SOURCES_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput} ${BUILD_VARIANTS} ${OFFLINE_ASM_ARGS} |
| COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput} |
| WORKING_DIRECTORY ${JavaScriptCore_DERIVED_SOURCES_DIR} |
| 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. |
| if (MSVC AND NOT ENABLE_C_LOOP) |
| enable_language(ASM_MASM) |
| if (CMAKE_SIZEOF_VOID_P EQUAL 4) |
| # Win32 needs /safeseh with assembly, but Win64 does not. |
| set(MASM_EXECUTABLE ml) |
| set(LLINT_MASM_FLAGS /safeseh /c /Fo) |
| else () |
| set(MASM_EXECUTABLE ml64) |
| set(LLINT_MASM_FLAGS /c /Fo) |
| endif () |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj |
| DEPENDS ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.asm |
| COMMAND ${MASM_EXECUTABLE} ${LLINT_MASM_FLAGS} ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.asm |
| VERBATIM) |
| list(APPEND JavaScriptCore_SOURCES ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj) |
| add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp) |
| else () |
| # As there's poor toolchain support for using `.file` directives in |
| # inline asm (i.e. there's no way to avoid clashes with the `.file` |
| # directives generated by the C code in the compilation unit), we |
| # introduce a postprocessing pass for the asm that gets assembled into |
| # an object file. We only need to do this for LowLevelInterpreter.cpp |
| # and cmake doesn't allow us to introduce a compiler wrapper for a |
| # single source file, so we need to create a separate target for it. |
| add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput}) |
| endif () |
| |
| # WebAssembly generator |
| |
| macro(GENERATE_PYTHON _generator _additional_deps _input _output) |
| add_custom_command( |
| OUTPUT ${_output} |
| MAIN_DEPENDENCY ${_generator} |
| DEPENDS ${_input} ${_additional_deps} |
| COMMAND ${PYTHON_EXECUTABLE} ${_generator} ${_input} ${_output} |
| VERBATIM) |
| list(APPEND JavaScriptCore_HEADERS ${_output}) |
| WEBKIT_ADD_SOURCE_DEPENDENCIES(${_input} ${_output}) |
| endmacro() |
| GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmOpsHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasm.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmOps.h) |
| GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmB3IRGeneratorInlinesHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasm.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmB3IRGeneratorInlines.h) |
| |
| # LUT generator |
| |
| set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table) |
| macro(GENERATE_HASH_LUT _input _output) |
| add_custom_command( |
| OUTPUT ${_output} |
| MAIN_DEPENDENCY ${HASH_LUT_GENERATOR} |
| DEPENDS ${_input} |
| COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} > ${_output} |
| VERBATIM) |
| list(APPEND JavaScriptCore_HEADERS ${_output}) |
| WEBKIT_ADD_SOURCE_DEPENDENCIES(${_input} ${_output}) |
| endmacro() |
| |
| # GENERATOR 1-A: LUT creator |
| |
| foreach (_file ${JavaScriptCore_OBJECT_LUT_SOURCES}) |
| get_filename_component(_name ${_file} NAME_WE) |
| GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${JavaScriptCore_DERIVED_SOURCES_DIR}/${_name}.lut.h) |
| endforeach () |
| |
| set(JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS |
| API/JSBase.h |
| API/JSContextRef.h |
| API/JSObjectRef.h |
| API/JSStringRef.h |
| API/JSTypedArray.h |
| API/JSValueRef.h |
| API/JavaScript.h |
| API/WebKitAvailability.h |
| ) |
| |
| set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/Bytecodes.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBuiltins.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/WasmOps.h |
| |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendDispatchers.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorFrontendDispatchers.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorProtocolObjects.h |
| |
| API/APICallbackFunction.h |
| API/APICast.h |
| API/APIUtils.h |
| API/JSAPIValueWrapper.h |
| API/JSAPIWrapperObject.h |
| API/JSBasePrivate.h |
| API/JSCTestRunnerUtils.h |
| API/JSCallbackConstructor.h |
| API/JSCallbackFunction.h |
| API/JSCallbackObject.h |
| API/JSCallbackObjectFunctions.h |
| API/JSClassRef.h |
| API/JSContextInternal.h |
| API/JSContextPrivate.h |
| API/JSContextRefInspectorSupport.h |
| API/JSContextRefInternal.h |
| API/JSContextRefPrivate.h |
| API/JSHeapFinalizerPrivate.h |
| API/JSManagedValueInternal.h |
| API/JSMarkingConstraintPrivate.h |
| API/JSObjectRefPrivate.h |
| API/JSRemoteInspector.h |
| API/JSRetainPtr.h |
| API/JSScriptRefPrivate.h |
| API/JSStringRefPrivate.h |
| API/JSValueInternal.h |
| API/JSValuePrivate.h |
| API/JSVirtualMachineInternal.h |
| API/JSWeakObjectMapRefInternal.h |
| API/JSWeakObjectMapRefPrivate.h |
| API/JSWeakPrivate.h |
| API/JSWrapperMap.h |
| API/ObjCCallbackFunction.h |
| API/ObjcRuntimeExtras.h |
| API/OpaqueJSString.h |
| |
| assembler/ARM64Assembler.h |
| assembler/ARM64Registers.h |
| assembler/ARMv7Assembler.h |
| assembler/ARMv7Registers.h |
| assembler/AbortReason.h |
| assembler/AbstractMacroAssembler.h |
| assembler/AssemblerBuffer.h |
| assembler/AssemblerCommon.h |
| assembler/CPU.h |
| assembler/CodeLocation.h |
| assembler/FastJITPermissions.h |
| assembler/JITOperationList.h |
| assembler/JITOperationValidation.h |
| assembler/LinkBuffer.h |
| assembler/MIPSAssembler.h |
| assembler/MIPSRegisters.h |
| assembler/MacroAssembler.h |
| assembler/MacroAssemblerARM64.h |
| assembler/MacroAssemblerARMv7.h |
| assembler/MacroAssemblerCodeRef.h |
| assembler/MacroAssemblerHelpers.h |
| assembler/MacroAssemblerMIPS.h |
| assembler/MacroAssemblerRISCV64.h |
| assembler/MacroAssemblerX86Common.h |
| assembler/MacroAssemblerX86_64.h |
| assembler/Printer.h |
| assembler/RISCV64Assembler.h |
| assembler/RISCV64Registers.h |
| assembler/RegisterInfo.h |
| assembler/SecureARM64EHashPins.h |
| assembler/SecureARM64EHashPinsInlines.h |
| assembler/X86Assembler.h |
| assembler/X86Registers.h |
| assembler/X86_64Registers.h |
| |
| b3/B3Common.h |
| b3/B3Type.h |
| b3/B3ValueRep.h |
| |
| bindings/ScriptFunctionCall.h |
| bindings/ScriptObject.h |
| bindings/ScriptValue.h |
| |
| builtins/BuiltinNames.h |
| builtins/BuiltinUtils.h |
| |
| bytecode/ArithProfile.h |
| bytecode/ArrayAllocationProfile.h |
| bytecode/ArrayProfile.h |
| bytecode/BytecodeConventions.h |
| bytecode/BytecodeIndex.h |
| bytecode/BytecodeIntrinsicRegistry.h |
| bytecode/CallEdge.h |
| bytecode/CallLinkInfo.h |
| bytecode/CallMode.h |
| bytecode/CallVariant.h |
| bytecode/CheckPrivateBrandStatus.h |
| bytecode/CheckPrivateBrandVariant.h |
| bytecode/CodeBlock.h |
| bytecode/CodeBlockHash.h |
| bytecode/CodeOrigin.h |
| bytecode/CodeType.h |
| bytecode/DFGExitProfile.h |
| bytecode/DataFormat.h |
| bytecode/DirectEvalCodeCache.h |
| bytecode/ExecutableInfo.h |
| bytecode/ExecutionCounter.h |
| bytecode/ExitKind.h |
| bytecode/ExitingInlineKind.h |
| bytecode/ExitingJITType.h |
| bytecode/ExpressionRangeInfo.h |
| bytecode/HandlerInfo.h |
| bytecode/ICStatusMap.h |
| bytecode/InlineCallFrame.h |
| bytecode/Instruction.h |
| bytecode/InstructionStream.h |
| bytecode/InternalFunctionAllocationProfile.h |
| bytecode/IterationModeMetadata.h |
| bytecode/JumpTable.h |
| bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h |
| bytecode/LazyOperandValueProfile.h |
| bytecode/LinkTimeConstant.h |
| bytecode/MetadataTable.h |
| bytecode/ObjectAllocationProfile.h |
| bytecode/ObjectPropertyCondition.h |
| bytecode/Opcode.h |
| bytecode/OpcodeSize.h |
| bytecode/Operands.h |
| bytecode/PropertyCondition.h |
| bytecode/PutByIdFlags.h |
| bytecode/SetPrivateBrandStatus.h |
| bytecode/SetPrivateBrandVariant.h |
| bytecode/SourceID.h |
| bytecode/SpeculatedType.h |
| bytecode/StructureSet.h |
| bytecode/SuperSampler.h |
| bytecode/ToThisStatus.h |
| bytecode/TypeLocation.h |
| bytecode/UnlinkedCodeBlock.h |
| bytecode/UnlinkedEvalCodeBlock.h |
| bytecode/UnlinkedFunctionExecutable.h |
| bytecode/UnlinkedGlobalCodeBlock.h |
| bytecode/UnlinkedMetadataTable.h |
| bytecode/ValueProfile.h |
| bytecode/ValueRecovery.h |
| bytecode/VariableWriteFireDetail.h |
| bytecode/VirtualRegister.h |
| bytecode/Watchpoint.h |
| |
| debugger/Breakpoint.h |
| debugger/Debugger.h |
| debugger/DebuggerCallFrame.h |
| debugger/DebuggerParseData.h |
| debugger/DebuggerPrimitives.h |
| |
| dfg/DFGCodeOriginPool.h |
| dfg/DFGCommon.h |
| dfg/DFGDoesGCCheck.h |
| dfg/DFGMinifiedID.h |
| |
| domjit/DOMJITAbstractHeap.h |
| domjit/DOMJITCallDOMGetterSnippet.h |
| domjit/DOMJITEffect.h |
| domjit/DOMJITGetterSetter.h |
| domjit/DOMJITHeapRange.h |
| domjit/DOMJITSignature.h |
| |
| heap/AbstractSlotVisitor.h |
| heap/AbstractSlotVisitorInlines.h |
| heap/AlignedMemoryAllocator.h |
| heap/AllocationFailureMode.h |
| heap/Allocator.h |
| heap/AllocatorInlines.h |
| heap/AllocatorForMode.h |
| heap/BlockDirectory.h |
| heap/BlockDirectoryBits.h |
| heap/BlockDirectoryInlines.h |
| heap/CellAttributes.h |
| heap/CellContainer.h |
| heap/CellContainerInlines.h |
| heap/CellState.h |
| heap/CollectionScope.h |
| heap/CollectorPhase.h |
| heap/CompleteSubspace.h |
| heap/CompleteSubspaceInlines.h |
| heap/ConstraintConcurrency.h |
| heap/ConstraintParallelism.h |
| heap/ConstraintVolatility.h |
| heap/DeferGC.h |
| heap/DeferGCInlines.h |
| heap/DeleteAllCodeEffort.h |
| heap/DestructionMode.h |
| heap/FastMallocAlignedMemoryAllocator.h |
| heap/FreeList.h |
| heap/FreeListInlines.h |
| heap/GCActivityCallback.h |
| heap/GCAssertions.h |
| heap/GCConductor.h |
| heap/GCDeferralContext.h |
| heap/GCIncomingRefCounted.h |
| heap/GCIncomingRefCountedInlines.h |
| heap/GCIncomingRefCountedSet.h |
| heap/GCLogging.h |
| heap/GCMemoryOperations.h |
| heap/GCRequest.h |
| heap/GCSegmentedArray.h |
| heap/Handle.h |
| heap/HandleBlock.h |
| heap/HandleForward.h |
| heap/HandleSet.h |
| heap/HandleTypes.h |
| heap/Heap.h |
| heap/HeapAnalyzer.h |
| heap/HeapCell.h |
| heap/HeapCellInlines.h |
| heap/HeapCellType.h |
| heap/HeapFinalizerCallback.h |
| heap/HeapInlines.h |
| heap/HeapObserver.h |
| heap/HeapSnapshotBuilder.h |
| heap/HeapSubspaceTypes.h |
| heap/IncrementalSweeper.h |
| heap/IsoCellSet.h |
| heap/IsoHeapCellType.h |
| heap/IsoInlinedHeapCellType.h |
| heap/IsoInlinedHeapCellTypeInlines.h |
| heap/IsoMemoryAllocatorBase.h |
| heap/IsoSubspace.h |
| heap/IsoSubspaceInlines.h |
| heap/IsoSubspacePerVM.h |
| heap/LocalAllocator.h |
| heap/LocalAllocatorInlines.h |
| heap/MachineStackMarker.h |
| heap/MarkStack.h |
| heap/MarkedBlock.h |
| heap/MarkedBlockInlines.h |
| heap/MarkedBlockSet.h |
| heap/MarkedSpace.h |
| heap/MarkingConstraint.h |
| heap/MarkingConstraintExecutorPair.h |
| heap/MutatorState.h |
| heap/PackedCellPtr.h |
| heap/PreciseAllocation.h |
| heap/RegisterState.h |
| heap/RootMarkReason.h |
| heap/RunningScope.h |
| heap/SimpleMarkingConstraint.h |
| heap/SlotVisitor.h |
| heap/SlotVisitorInlines.h |
| heap/SlotVisitorMacros.h |
| heap/Strong.h |
| heap/StrongForward.h |
| heap/StrongInlines.h |
| heap/StructureAlignedMemoryAllocator.h |
| heap/Subspace.h |
| heap/SubspaceInlines.h |
| heap/Synchronousness.h |
| heap/TinyBloomFilter.h |
| heap/VerifierSlotVisitor.h |
| heap/VisitRaceKey.h |
| heap/Weak.h |
| heap/WeakBlock.h |
| heap/WeakHandleOwner.h |
| heap/WeakImpl.h |
| heap/WeakInlines.h |
| heap/WeakSet.h |
| heap/WeakSetInlines.h |
| |
| inspector/ConsoleMessage.h |
| inspector/ContentSearchUtilities.h |
| inspector/IdentifiersFactory.h |
| inspector/InjectedScript.h |
| inspector/InjectedScriptBase.h |
| inspector/InjectedScriptHost.h |
| inspector/InjectedScriptManager.h |
| inspector/InjectedScriptModule.h |
| inspector/InspectorAgentBase.h |
| inspector/InspectorAgentRegistry.h |
| inspector/InspectorBackendDispatcher.h |
| inspector/InspectorEnvironment.h |
| inspector/InspectorFrontendChannel.h |
| inspector/InspectorFrontendRouter.h |
| inspector/InspectorProtocolTypes.h |
| inspector/InspectorTarget.h |
| inspector/PerGlobalObjectWrapperWorld.h |
| inspector/ScriptArguments.h |
| inspector/ScriptCallFrame.h |
| inspector/ScriptCallStack.h |
| inspector/ScriptCallStackFactory.h |
| |
| inspector/agents/InspectorAgent.h |
| inspector/agents/InspectorAuditAgent.h |
| inspector/agents/InspectorConsoleAgent.h |
| inspector/agents/InspectorDebuggerAgent.h |
| inspector/agents/InspectorHeapAgent.h |
| inspector/agents/InspectorRuntimeAgent.h |
| inspector/agents/InspectorScriptProfilerAgent.h |
| inspector/agents/InspectorTargetAgent.h |
| |
| inspector/augmentable/AugmentableInspectorControllerClient.h |
| |
| inspector/remote/RemoteAutomationTarget.h |
| inspector/remote/RemoteControllableTarget.h |
| inspector/remote/RemoteInspectionTarget.h |
| inspector/remote/RemoteInspector.h |
| |
| interpreter/AbstractPC.h |
| interpreter/CallFrame.h |
| interpreter/CallFrameInlines.h |
| interpreter/CalleeBits.h |
| interpreter/EntryFrame.h |
| interpreter/FrameTracers.h |
| interpreter/Register.h |
| interpreter/RegisterInlines.h |
| interpreter/ShadowChicken.h |
| interpreter/StackVisitor.h |
| interpreter/VMEntryRecord.h |
| |
| jit/AssemblyHelpers.h |
| jit/AssemblyHelpersSpoolers.h |
| jit/BaselineJITCode.h |
| jit/BaselineJITRegisters.h |
| jit/CallFrameShuffleData.h |
| jit/CCallHelpers.h |
| jit/ExecutableAllocator.h |
| jit/ExecutableMemoryHandle.h |
| jit/FPRInfo.h |
| jit/GCAwareJITStubRoutine.h |
| jit/GPRInfo.h |
| jit/JITAllocator.h |
| jit/JITCode.h |
| jit/JITCodeMap.h |
| jit/JITCompilation.h |
| jit/JITCompilationEffort.h |
| jit/JITCompilationMode.h |
| jit/JITMathICForwards.h |
| jit/JITOperations.h |
| jit/JITStubRoutine.h |
| jit/JITThunks.h |
| jit/PCToCodeOriginMap.h |
| jit/PolymorphicCallStubRoutine.h |
| jit/Reg.h |
| jit/RegisterAtOffset.h |
| jit/RegisterAtOffsetList.h |
| jit/RegisterMap.h |
| jit/RegisterSet.h |
| jit/ScratchRegisterAllocator.h |
| jit/Snippet.h |
| jit/SnippetParams.h |
| jit/SnippetReg.h |
| jit/SnippetSlowPathCalls.h |
| jit/SpillRegistersMode.h |
| jit/TagRegistersMode.h |
| jit/ThunkGenerator.h |
| |
| llint/LLIntOpcode.h |
| |
| parser/Lexer.h |
| parser/ParserArena.h |
| parser/ParserError.h |
| parser/ParserModes.h |
| parser/ParserTokens.h |
| parser/ResultType.h |
| parser/SourceCode.h |
| parser/SourceProvider.h |
| parser/SourceProviderCache.h |
| parser/SourceProviderCacheItem.h |
| parser/UnlinkedSourceCode.h |
| parser/VariableEnvironment.h |
| |
| profiler/ProfilerBytecode.h |
| profiler/ProfilerBytecodeSequence.h |
| profiler/ProfilerBytecodes.h |
| profiler/ProfilerCompilation.h |
| profiler/ProfilerCompilationKind.h |
| profiler/ProfilerCompiledBytecode.h |
| profiler/ProfilerDatabase.h |
| profiler/ProfilerEvent.h |
| profiler/ProfilerExecutionCounter.h |
| profiler/ProfilerJettisonReason.h |
| profiler/ProfilerOSRExit.h |
| profiler/ProfilerOSRExitSite.h |
| profiler/ProfilerOrigin.h |
| profiler/ProfilerOriginStack.h |
| profiler/ProfilerProfiledBytecodes.h |
| profiler/ProfilerUID.h |
| |
| runtime/AbstractModuleRecord.h |
| runtime/ArgList.h |
| runtime/ArityCheckMode.h |
| runtime/ArrayConstructor.h |
| runtime/ArrayBuffer.h |
| runtime/ArrayBufferSharingMode.h |
| runtime/ArrayBufferView.h |
| runtime/ArrayConventions.h |
| runtime/ArrayPrototype.h |
| runtime/ArrayStorage.h |
| runtime/ArrayStorageInlines.h |
| runtime/AsyncIteratorPrototype.h |
| runtime/AuxiliaryBarrier.h |
| runtime/AuxiliaryBarrierInlines.h |
| runtime/BasicBlockLocation.h |
| runtime/BatchedTransitionOptimizer.h |
| runtime/BigInt64Array.h |
| runtime/BigIntObject.h |
| runtime/BigIntPrototype.h |
| runtime/BigUint64Array.h |
| runtime/BooleanObject.h |
| runtime/BooleanPrototype.h |
| runtime/BrandedStructure.h |
| runtime/Butterfly.h |
| runtime/ButterflyInlines.h |
| runtime/BytecodeCacheError.h |
| runtime/CachePayload.h |
| runtime/CacheUpdate.h |
| runtime/CacheableIdentifier.h |
| runtime/CacheableIdentifierInlines.h |
| runtime/CachedBytecode.h |
| runtime/CachedTypes.h |
| runtime/CagedBarrierPtr.h |
| runtime/CallData.h |
| runtime/CatchScope.h |
| runtime/CellSize.h |
| runtime/ClassInfo.h |
| runtime/CodeSpecializationKind.h |
| runtime/CommonIdentifiers.h |
| runtime/CompilationResult.h |
| runtime/Completion.h |
| runtime/Concurrency.h |
| runtime/ConcurrentJSLock.h |
| runtime/ConfigFile.h |
| runtime/ConsoleClient.h |
| runtime/ConsoleTypes.h |
| runtime/ConstantMode.h |
| runtime/ConstructAbility.h |
| runtime/ConstructData.h |
| runtime/ConstructorKind.h |
| runtime/ControlFlowProfiler.h |
| runtime/CustomGetterSetter.h |
| runtime/DOMAnnotation.h |
| runtime/DOMAttributeGetterSetter.h |
| runtime/DataView.h |
| runtime/DateInstance.h |
| runtime/DateInstanceCache.h |
| runtime/DeferTermination.h |
| runtime/DeferredWorkTimer.h |
| runtime/DefinePropertyAttributes.h |
| runtime/DeletePropertySlot.h |
| runtime/DirectArgumentsOffset.h |
| runtime/DirectEvalExecutable.h |
| runtime/DisallowScope.h |
| runtime/DisallowVMEntry.h |
| runtime/DumpContext.h |
| runtime/ECMAMode.h |
| runtime/EnsureStillAliveHere.h |
| runtime/EnumerationMode.h |
| runtime/Error.h |
| runtime/ErrorHandlingScope.h |
| runtime/ErrorInstance.h |
| runtime/ErrorPrototype.h |
| runtime/ErrorType.h |
| runtime/EvalExecutable.h |
| runtime/Exception.h |
| runtime/ExceptionEventLocation.h |
| runtime/ExceptionExpectation.h |
| runtime/ExceptionHelpers.h |
| runtime/ExceptionScope.h |
| runtime/ExecutableBase.h |
| runtime/ExecutableBaseInlines.h |
| runtime/Float32Array.h |
| runtime/Float64Array.h |
| runtime/Forward.h |
| runtime/FunctionConstructor.h |
| runtime/FunctionExecutable.h |
| runtime/FunctionHasExecutedCache.h |
| runtime/FunctionPrototype.h |
| runtime/FunctionRareData.h |
| runtime/FuzzerAgent.h |
| runtime/Gate.h |
| runtime/GenericOffset.h |
| runtime/GenericTypedArrayView.h |
| runtime/GenericTypedArrayViewInlines.h |
| runtime/GetPutInfo.h |
| runtime/GetterSetter.h |
| runtime/GetVM.h |
| runtime/GlobalExecutable.h |
| runtime/HashMapImpl.h |
| runtime/HashMapImplInlines.h |
| runtime/Identifier.h |
| runtime/IdentifierInlines.h |
| runtime/IndexingHeader.h |
| runtime/IndexingHeaderInlines.h |
| runtime/IndexingType.h |
| runtime/InferredValue.h |
| runtime/InitializeThreading.h |
| runtime/Int16Array.h |
| runtime/Int32Array.h |
| runtime/Int8Array.h |
| runtime/InternalFunction.h |
| runtime/Intrinsic.h |
| runtime/IterationKind.h |
| runtime/IteratorOperations.h |
| runtime/IteratorPrototype.h |
| runtime/JSArray.h |
| runtime/JSArrayInlines.h |
| runtime/JSArrayBuffer.h |
| runtime/JSArrayBufferPrototype.h |
| runtime/JSArrayBufferView.h |
| runtime/JSArrayBufferViewInlines.h |
| runtime/JSArrayIterator.h |
| runtime/JSBigInt.h |
| runtime/JSBoundFunction.h |
| runtime/JSCConfig.h |
| runtime/JSCInlines.h |
| runtime/JSCJSValue.h |
| runtime/JSCJSValueInlines.h |
| runtime/JSCPtrTag.h |
| runtime/JSCallee.h |
| runtime/JSCast.h |
| runtime/JSCell.h |
| runtime/JSCellInlines.h |
| runtime/JSCustomGetterFunction.h |
| runtime/JSCustomSetterFunction.h |
| runtime/JSDataView.h |
| runtime/JSDateMath.h |
| runtime/JSDestructibleObject.h |
| runtime/JSDestructibleObjectHeapCellType.h |
| runtime/JSExportMacros.h |
| runtime/JSFunction.h |
| runtime/JSFunctionInlines.h |
| runtime/JSGenerator.h |
| runtime/JSGenericTypedArrayView.h |
| runtime/JSGenericTypedArrayViewInlines.h |
| runtime/JSGenericTypedArrayViewPrototype.h |
| runtime/JSGenericTypedArrayViewPrototypeInlines.h |
| runtime/JSGlobalLexicalEnvironment.h |
| runtime/JSGlobalObject.h |
| runtime/JSGlobalObjectFunctions.h |
| runtime/JSGlobalObjectInlines.h |
| runtime/JSImmutableButterfly.h |
| runtime/JSInternalFieldObjectImpl.h |
| runtime/JSInternalPromise.h |
| runtime/JSMicrotask.h |
| runtime/JSLock.h |
| runtime/JSMap.h |
| runtime/JSMapInlines.h |
| runtime/JSMapIterator.h |
| runtime/JSModuleLoader.h |
| runtime/JSModuleRecord.h |
| runtime/JSNativeStdFunction.h |
| runtime/JSONAtomStringCache.h |
| runtime/JSONObject.h |
| runtime/JSObject.h |
| runtime/JSObjectInlines.h |
| runtime/JSPromise.h |
| runtime/JSPromiseConstructor.h |
| runtime/JSPropertyNameEnumerator.h |
| runtime/JSProxy.h |
| runtime/JSRemoteFunction.h |
| runtime/JSRunLoopTimer.h |
| runtime/JSScope.h |
| runtime/JSScriptFetchParameters.h |
| runtime/JSScriptFetcher.h |
| runtime/JSSegmentedVariableObject.h |
| runtime/JSSet.h |
| runtime/JSSetInlines.h |
| runtime/JSSetIterator.h |
| runtime/JSSourceCode.h |
| runtime/JSString.h |
| runtime/JSStringInlines.h |
| runtime/JSSymbolTableObject.h |
| runtime/JSType.h |
| runtime/JSTypeInfo.h |
| runtime/JSTypedArrays.h |
| runtime/JSWeakMap.h |
| runtime/JSWeakMapInlines.h |
| runtime/JSWithScope.h |
| runtime/JSWrapperObject.h |
| runtime/LazyClassStructure.h |
| runtime/LazyProperty.h |
| runtime/LeafExecutable.h |
| runtime/Lookup.h |
| runtime/MatchResult.h |
| runtime/MathCommon.h |
| runtime/MemoryStatistics.h |
| runtime/Microtask.h |
| runtime/ModuleProgramExecutable.h |
| runtime/NativeExecutable.h |
| runtime/NativeFunction.h |
| runtime/NullGetterFunction.h |
| runtime/NullSetterFunction.h |
| runtime/NumberObject.h |
| runtime/NumberPrototype.h |
| runtime/NumericStrings.h |
| runtime/ObjectConstructor.h |
| runtime/ObjectInitializationScope.h |
| runtime/ObjectPrototype.h |
| runtime/Operations.h |
| runtime/Options.h |
| runtime/OptionsList.h |
| runtime/ParseInt.h |
| runtime/PrivateFieldPutKind.h |
| runtime/PrivateName.h |
| runtime/ProgramExecutable.h |
| runtime/PropertyDescriptor.h |
| runtime/PropertyName.h |
| runtime/PropertyNameArray.h |
| runtime/PropertyOffset.h |
| runtime/PropertySlot.h |
| runtime/PropertyStorage.h |
| runtime/PropertyTable.h |
| runtime/Protect.h |
| runtime/PrototypeKey.h |
| runtime/ProxyObject.h |
| runtime/PureNaN.h |
| runtime/PutDirectIndexMode.h |
| runtime/PutPropertySlot.h |
| runtime/RegExp.h |
| runtime/RegExpCachedResult.h |
| runtime/RegExpGlobalData.h |
| runtime/RegExpKey.h |
| runtime/RegExpObject.h |
| runtime/RegExpStringIteratorPrototype.h |
| runtime/ResourceExhaustion.h |
| runtime/RuntimeFlags.h |
| runtime/RuntimeType.h |
| runtime/SamplingProfiler.h |
| runtime/ScopeOffset.h |
| runtime/ScopedArgumentsTable.h |
| runtime/Scribble.h |
| runtime/ScriptExecutable.h |
| runtime/ScriptExecutableInlines.h |
| runtime/ScriptFetchParameters.h |
| runtime/ScriptFetcher.h |
| runtime/ShadowRealmObject.h |
| runtime/SlowPathFunction.h |
| runtime/SlowPathReturnType.h |
| runtime/SmallStrings.h |
| runtime/SourceOrigin.h |
| runtime/SparseArrayValueMap.h |
| runtime/StackAlignment.h |
| runtime/StackFrame.h |
| runtime/StringObject.h |
| runtime/StringPrototype.h |
| runtime/Structure.h |
| runtime/StructureCache.h |
| runtime/StructureChain.h |
| runtime/StructureID.h |
| runtime/StructureInlines.h |
| runtime/StructureRareData.h |
| runtime/StructureRareDataInlines.h |
| runtime/StructureTransitionTable.h |
| runtime/SubspaceAccess.h |
| runtime/Symbol.h |
| runtime/SymbolPrototype.h |
| runtime/SymbolTable.h |
| runtime/SymbolTableOrScopeDepth.h |
| runtime/TemplateObjectDescriptor.h |
| runtime/TemporalNow.h |
| runtime/TemporalObject.h |
| runtime/TestRunnerUtils.h |
| runtime/ThrowScope.h |
| runtime/ToNativeFromValue.h |
| runtime/TypeError.h |
| runtime/TypeInfoBlob.h |
| runtime/TypeSet.h |
| runtime/TypedArrayAdaptersForwardDeclarations.h |
| runtime/TypedArrayAdaptors.h |
| runtime/TypedArrayController.h |
| runtime/TypedArrayInlines.h |
| runtime/TypedArrayType.h |
| runtime/TypedArrays.h |
| runtime/TypeofType.h |
| runtime/Uint16Array.h |
| runtime/Uint32Array.h |
| runtime/Uint8Array.h |
| runtime/Uint8ClampedArray.h |
| runtime/VM.h |
| runtime/VMEntryScope.h |
| runtime/VMInlines.h |
| runtime/VMTraps.h |
| runtime/VMTrapsInlines.h |
| runtime/VarOffset.h |
| runtime/Watchdog.h |
| runtime/WeakGCHashTable.h |
| runtime/WeakGCMap.h |
| runtime/WeakGCMapInlines.h |
| runtime/WeakGCSet.h |
| runtime/WeakGCSetInlines.h |
| runtime/WriteBarrier.h |
| runtime/WriteBarrierInlines.h |
| |
| tools/Integrity.h |
| tools/IntegrityInlines.h |
| tools/VMInspector.h |
| tools/VMInspectorInlines.h |
| |
| wasm/WasmBranchHints.h |
| wasm/WasmCallee.h |
| wasm/WasmCalleeGroup.h |
| wasm/WasmCapabilities.h |
| wasm/WasmCompilationMode.h |
| wasm/WasmContext.h |
| wasm/WasmCreationMode.h |
| wasm/WasmEmbedder.h |
| wasm/WasmExceptionType.h |
| wasm/WasmFaultSignalHandler.h |
| wasm/WasmFormat.h |
| wasm/WasmFunctionCodeBlockGenerator.h |
| wasm/WasmHandlerInfo.h |
| wasm/WasmIndexOrName.h |
| wasm/WasmLLIntTierUpCounter.h |
| wasm/WasmMemory.h |
| wasm/WasmMemoryInformation.h |
| wasm/WasmMemoryMode.h |
| wasm/WasmModule.h |
| wasm/WasmModuleInformation.h |
| wasm/WasmName.h |
| wasm/WasmNameSection.h |
| wasm/WasmOSREntryData.h |
| wasm/WasmPageCount.h |
| wasm/WasmSections.h |
| wasm/WasmTypeDefinition.h |
| wasm/WasmStreamingCompiler.h |
| wasm/WasmStreamingParser.h |
| wasm/WasmTierUpCount.h |
| wasm/WasmValueLocation.h |
| |
| wasm/js/JSWebAssembly.h |
| wasm/js/JSWebAssemblyMemory.h |
| wasm/js/JSWebAssemblyModule.h |
| wasm/js/WebAssemblyModuleRecord.h |
| |
| |
| yarr/RegularExpression.h |
| yarr/Yarr.h |
| yarr/YarrErrorCode.h |
| yarr/YarrFlags.h |
| yarr/YarrInterpreter.h |
| yarr/YarrJIT.h |
| yarr/YarrMatchingContextHolder.h |
| yarr/YarrParser.h |
| yarr/YarrPattern.h |
| yarr/YarrUnicodeProperties.h |
| ) |
| |
| if (USE_INSPECTOR_SOCKET_SERVER) |
| list(APPEND JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS |
| API/JSRemoteInspectorServer.h |
| ) |
| endif () |
| |
| # GENERATOR 1-B: particular LUT creator (for 1 file only) |
| GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${JavaScriptCore_DERIVED_SOURCES_DIR}/Lexer.lut.h) |
| |
| file(MAKE_DIRECTORY ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr) |
| |
| #GENERATOR: "RegExpJitTables.h": tables used by Yarr |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/RegExpJitTables.h |
| MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/yarr/create_regex_tables |
| COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/yarr/create_regex_tables ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/RegExpJitTables.h |
| VERBATIM) |
| list(APPEND JavaScriptCore_HEADERS ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/RegExpJitTables.h) |
| WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/RegExpJitTables.h) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/UnicodePatternTables.h |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/yarr/generateYarrUnicodePropertyTables.py |
| DEPENDS ${JAVASCRIPTCORE_DIR}/yarr/hasher.py ${JAVASCRIPTCORE_DIR}/ucd/DerivedBinaryProperties.txt ${JAVASCRIPTCORE_DIR}/ucd/DerivedCoreProperties.txt ${JAVASCRIPTCORE_DIR}/ucd/DerivedNormalizationProps.txt ${JAVASCRIPTCORE_DIR}/ucd/PropList.txt ${JAVASCRIPTCORE_DIR}/ucd/PropertyAliases.txt ${JAVASCRIPTCORE_DIR}/ucd/PropertyValueAliases.txt ${JAVASCRIPTCORE_DIR}/ucd/ScriptExtensions.txt ${JAVASCRIPTCORE_DIR}/ucd/Scripts.txt ${JAVASCRIPTCORE_DIR}/ucd/UnicodeData.txt ${JAVASCRIPTCORE_DIR}/ucd/emoji-data.txt |
| COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/yarr/generateYarrUnicodePropertyTables.py ${JAVASCRIPTCORE_DIR}/ucd ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/UnicodePatternTables.h |
| VERBATIM) |
| list(APPEND JavaScriptCore_HEADERS ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/UnicodePatternTables.h) |
| WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/UnicodePatternTables.cpp ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/UnicodePatternTables.h) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/YarrCanonicalizeUnicode.cpp |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/yarr/generateYarrCanonicalizeUnicode |
| DEPENDS ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt |
| COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/yarr/generateYarrCanonicalizeUnicode ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt ${JavaScriptCore_DERIVED_SOURCES_DIR}/yarr/YarrCanonicalizeUnicode.cpp |
| VERBATIM) |
| |
| #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/KeywordLookup.h |
| MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py |
| DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table |
| COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${JavaScriptCore_DERIVED_SOURCES_DIR}/KeywordLookup.h |
| VERBATIM) |
| list(APPEND JavaScriptCore_HEADERS ${JavaScriptCore_DERIVED_SOURCES_DIR}/KeywordLookup.h) |
| WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${JavaScriptCore_DERIVED_SOURCES_DIR}/KeywordLookup.h) |
| |
| |
| # Inspector Interfaces |
| |
| set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts") |
| |
| set(JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_js_backend_commands.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_header.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_implementation.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator_templates.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/__init__.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/models.py |
| ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/preprocess.pl |
| ) |
| |
| set(JavaScriptCore_INSPECTOR_DOMAINS |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Animation.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/ApplicationCache.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Audit.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Browser.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/CPUProfiler.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Canvas.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOM.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMDebugger.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMStorage.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Database.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Debugger.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/GenericTypes.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Heap.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/IndexedDB.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Inspector.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/LayerTree.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Memory.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Network.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Page.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Recording.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Runtime.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/ScriptProfiler.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Security.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/ServiceWorker.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Target.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Timeline.json |
| ${JAVASCRIPTCORE_DIR}/inspector/protocol/Worker.json |
| ) |
| |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py |
| DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS} |
| COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| VERBATIM) |
| |
| # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders |
| file(MAKE_DIRECTORY ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector) |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendDispatchers.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendDispatchers.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorFrontendDispatchers.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorFrontendDispatchers.h |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorProtocolObjects.cpp |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorProtocolObjects.h |
| MAIN_DEPENDENCY ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| DEPENDS ${JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS} |
| COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir "${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector" --framework JavaScriptCore ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| VERBATIM) |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendCommands.js |
| ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendCommands.js.in |
| MAIN_DEPENDENCY ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| DEPENDS ${JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS} |
| COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector --framework WebInspectorUI ${JavaScriptCore_DERIVED_SOURCES_DIR}/CombinedDomains.json |
| COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/preprocess.pl --input ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendCommands.js.in --defines "${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --output ${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendCommands.js |
| VERBATIM) |
| add_custom_target(InspectorBackendCommands DEPENDS "${JavaScriptCore_DERIVED_SOURCES_DIR}/inspector/InspectorBackendCommands.js") |
| |
| if (WTF_CPU_X86_64) |
| if (MSVC AND NOT ENABLE_C_LOOP) |
| add_custom_command( |
| OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj |
| MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm |
| COMMAND ml64 -nologo -c -Fo ${JavaScriptCore_DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm |
| VERBATIM) |
| |
| list(APPEND JavaScriptCore_SOURCES ${JavaScriptCore_DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj) |
| endif () |
| endif () |
| |
| set(JavaScriptCore_INTERFACE_LIBRARIES JavaScriptCore) |
| set(JavaScriptCore_INTERFACE_INCLUDE_DIRECTORIES |
| ${JavaScriptCore_FRAMEWORK_HEADERS_DIR} |
| ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR} |
| ) |
| set(JavaScriptCore_INTERFACE_DEPENDENCIES |
| JavaScriptCore_CopyHeaders |
| JavaScriptCore_CopyPrivateHeaders |
| ) |
| |
| WEBKIT_FRAMEWORK_DECLARE(JavaScriptCore) |
| WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() |
| |
| if (COMPILER_IS_GCC_OR_CLANG) |
| # Avoid using fused multiply-add instructions since this could give different results |
| # for e.g. parseInt depending on the platform and compilation flags. |
| WEBKIT_ADD_TARGET_CXX_FLAGS(JavaScriptCore -ffp-contract=off -fno-slp-vectorize) |
| |
| # On MIPS we have to explicitly disable madd4, since some versions of gcc still generate |
| # such instructions despite -ffp-contract=off |
| if (WTF_CPU_MIPS) |
| WEBKIT_ADD_TARGET_CXX_FLAGS(JavaScriptCore -mno-madd4) |
| endif () |
| endif () |
| |
| WEBKIT_COPY_FILES(JavaScriptCore_CopyHeaders |
| DESTINATION ${JavaScriptCore_FRAMEWORK_HEADERS_DIR}/JavaScriptCore |
| FILES ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS} |
| FLATTENED |
| ) |
| |
| WEBKIT_COPY_FILES(JavaScriptCore_CopyPrivateHeaders |
| DESTINATION ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR}/JavaScriptCore |
| FILES ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS} |
| FLATTENED |
| ) |
| add_dependencies(JavaScriptCore_CopyPrivateHeaders Bytecodes JSCBuiltins) |
| # JavaScriptCore_CopyPrivateHeaders needs to have a direct or indirect |
| # dependency of JavaScriptCore for CMake Visual Studio generator to |
| # eliminate duplicated custom commands. Otherwise, |
| # CombinedDomains.json will be generated in both projects. |
| if (NOT INTERNAL_BUILD) |
| add_dependencies(JavaScriptCore_CopyPrivateHeaders JavaScriptCore) |
| endif () |
| |
| target_include_directories(LowLevelInterpreterLib |
| PRIVATE "$<TARGET_PROPERTY:JavaScriptCore,INCLUDE_DIRECTORIES>") |
| add_dependencies(LowLevelInterpreterLib Bytecodes JSCBuiltins) |
| if (TARGET WTF_CopyHeaders) |
| add_dependencies(LowLevelInterpreterLib WTF_CopyHeaders) |
| endif () |
| |
| if (CMAKE_COMPILER_IS_GNUCXX AND GCC_OFFLINEASM_SOURCE_MAP) |
| message(STATUS "Enabling asm postprocessing") |
| |
| set(LowLevelInterpreter_LAUNCHER "${JavaScriptCore_SCRIPTS_SOURCES_DIR}/postprocess-asm") |
| get_target_property(PROP_RULE_LAUNCH_COMPILE LowLevelInterpreterLib RULE_LAUNCH_COMPILE) |
| if (PROP_RULE_LAUNCH_COMPILE) |
| set(LowLevelInterpreter_LAUNCHER "${LowLevelInterpreter_LAUNCHER} ${PROP_RULE_LAUNCH_COMPILE}") |
| endif () |
| set_property(TARGET LowLevelInterpreterLib |
| PROPERTY RULE_LAUNCH_COMPILE "${LowLevelInterpreter_LAUNCHER}") |
| |
| # Pass in the filename as a magic preprocessor directive, so that |
| # the wrapper can accurately identify the source file. This is incompatible |
| # with LTO. |
| set_source_files_properties("llint/LowLevelInterpreter.cpp" |
| PROPERTIES |
| COMPILE_DEFINITIONS "POSTPROCESS_ASM=llint/LowLevelInterpreter.cpp" |
| COMPILE_OPTIONS "-fno-lto") |
| endif () |
| |
| list(APPEND JavaScriptCore_PRIVATE_LIBRARIES LowLevelInterpreterLib) |
| |
| WEBKIT_COMPUTE_SOURCES(JavaScriptCore) |
| WEBKIT_FRAMEWORK(JavaScriptCore) |
| WEBKIT_FRAMEWORK_TARGET(JavaScriptCore) |
| |
| if (NOT "${PORT}" STREQUAL "Mac") |
| if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED") |
| WEBKIT_POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE) |
| set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR}) |
| install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}") |
| endif () |
| endif () |
| |
| # Force staging of shared scripts, even if they aren't directly used to build JavaScriptCore. |
| |
| add_custom_target(JavaScriptCoreSharedScripts DEPENDS ${JavaScriptCore_SCRIPTS}) |
| add_dependencies(JavaScriptCore JavaScriptCoreSharedScripts ${JavaScriptCore_EXTRA_DEPENDENCIES}) |
| |
| # JavaScriptCore target needs to have a direct or indirect dependency |
| # of InspectorBackendCommands for CMake Visual Studio generator to |
| # eliminate duplicated custom commands. Otherwise, |
| # CombinedDomains.json will be generated in both projects. |
| add_dependencies(JavaScriptCore InspectorBackendCommands) |
| |
| if (USE_VERSION_STAMPER) |
| add_custom_command( |
| TARGET JavaScriptCore |
| PRE_BUILD |
| COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/auto-version.pl ${JavaScriptCore_DERIVED_SOURCES_DIR} |
| VERBATIM) |
| |
| add_custom_command( |
| TARGET JavaScriptCore |
| POST_BUILD |
| COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/version-stamp.pl ${JavaScriptCore_DERIVED_SOURCES_DIR} $<TARGET_FILE:JavaScriptCore> |
| VERBATIM) |
| endif () |
| |
| add_subdirectory(shell) |