blob: 16ab1d2b8d2cd97294d3fcc07fdfdf4ba4df57b9 [file]
include(PlatformCocoa.cmake)
set(MACOSX_FRAMEWORK_IDENTIFIER com.apple.JavaScriptCore)
set_target_properties(JavaScriptCore PROPERTIES
INSTALL_NAME_DIR "${JavaScriptCore_INSTALL_NAME_DIR}"
)
target_link_options(JavaScriptCore PRIVATE
-compatibility_version 1.0.0
-current_version ${WEBKIT_MAC_VERSION}
)
if (WTF_LIBRARY_TYPE STREQUAL "STATIC")
target_link_options(JavaScriptCore PRIVATE
"SHELL:-Wl,-force_load $<TARGET_FILE:WTF>"
)
endif ()
set(JavaScriptCore_POST_BUILD_COMMAND
${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/JavaScriptCore-Info.plist
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/JavaScriptCore.framework/Info.plist
COMMAND codesign --force --sign - ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/JavaScriptCore.framework
)
set(BUNDLE_VERSION "${MACOSX_FRAMEWORK_BUNDLE_VERSION}")
set(SHORT_VERSION_STRING "${WEBKIT_MAC_VERSION}")
set(PRODUCT_NAME "JavaScriptCore")
set(PRODUCT_BUNDLE_IDENTIFIER "com.apple.JavaScriptCore")
configure_file(${JAVASCRIPTCORE_DIR}/Info.plist ${CMAKE_CURRENT_BINARY_DIR}/JavaScriptCore-Info.plist)
# Weak-linked: iOS 17.4+.
target_link_options(JavaScriptCore PRIVATE -weak_framework BrowserEngineCore)
target_compile_options(JavaScriptCore PRIVATE ${WEBKIT_PRIVATE_FRAMEWORKS_COMPILE_FLAG})
target_compile_definitions(JavaScriptCore PRIVATE PAS_BMALLOC_HIDDEN=1)
target_compile_options(JavaScriptCore PRIVATE
"$<$<COMPILE_LANGUAGE:OBJC,OBJCXX>:-fvisibility=hidden>"
)
list(APPEND JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS
API/JSContext.h
API/JSExport.h
API/JSManagedValue.h
API/JSStringRefCF.h
API/JSValue.h
API/JSVirtualMachine.h
API/JavaScriptCore.h
)
list(APPEND JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
API/JSCallbackFunction.h
API/JSContextPrivate.h
API/JSContextRefPrivate.h
API/JSValuePrivate.h
)
# arm64e: MacroAssembler.h conditionally includes this via CPU(ARM64E).
list(APPEND JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
assembler/MacroAssemblerARM64E.h
)
list(APPEND JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
API/MARReportCrashPrivate.h
API/PASReportCrashPrivate.h
API/WorkAround173516139.h
assembler/MacroAssemblerPrinter.h
debugger/DebuggerEvalEnabler.h
disassembler/Disassembler.h
heap/CodeBlockSet.h
heap/ConservativeRoots.h
heap/GCIncomingRefCountedSetInlines.h
heap/GCSegmentedArrayInlines.h
heap/HeapSnapshot.h
heap/JITStubRoutineSet.h
heap/VerifierSlotVisitorScope.h
heap/WriteBarrierSupport.h
inspector/augmentable/AlternateDispatchableAgent.h
inspector/augmentable/AugmentableInspectorController.h
jit/BinarySwitch.h
jit/ExecutableAllocationFuzz.h
jit/GdbJIT.h
jit/JITExceptions.h
jit/JSInterfaceJIT.h
parser/ModuleScopeData.h
runtime/PinballHandlerContext.h
tools/JSDollarVM.h
yarr/YarrJITRegisters.h
)
list(APPEND JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
Scripts/UpdateContents.py
Scripts/copy-profiling-data.py
Scripts/cssmin.py
Scripts/generate-combined-inspector-json.py
Scripts/generate-js-builtins.py
Scripts/inline-and-minify-stylesheets-and-scripts.py
Scripts/jsmin.py
Scripts/lazywriter.py
Scripts/make-js-file-arrays.py
Scripts/xxd.pl
Scripts/wkbuiltins/builtins_generate_combined_header.py
Scripts/wkbuiltins/builtins_generate_combined_implementation.py
Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py
Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py
Scripts/wkbuiltins/builtins_generate_separate_header.py
Scripts/wkbuiltins/builtins_generate_separate_implementation.py
Scripts/wkbuiltins/builtins_generate_wrapper_header.py
Scripts/wkbuiltins/builtins_generate_wrapper_implementation.py
Scripts/wkbuiltins/builtins_generator.py
Scripts/wkbuiltins/builtins_model.py
Scripts/wkbuiltins/builtins_templates.py
Scripts/wkbuiltins/wkbuiltins.py
inspector/scripts/generate-inspector-protocol-bindings.py
inspector/scripts/codegen/cpp_generator.py
inspector/scripts/codegen/cpp_generator_templates.py
inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py
inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
inspector/scripts/codegen/generate_cpp_protocol_types_header.py
inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
inspector/scripts/codegen/generate_js_backend_commands.py
inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py
inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py
inspector/scripts/codegen/generate_objc_configuration_header.py
inspector/scripts/codegen/generate_objc_configuration_implementation.py
inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py
inspector/scripts/codegen/generate_objc_header.py
inspector/scripts/codegen/generate_objc_internal_header.py
inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py
inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py
inspector/scripts/codegen/generate_objc_protocol_types_implementation.py
inspector/scripts/codegen/generator.py
inspector/scripts/codegen/generator_templates.py
inspector/scripts/codegen/models.py
inspector/scripts/codegen/objc_generator.py
inspector/scripts/codegen/objc_generator_templates.py
)
configure_file(${JAVASCRIPTCORE_DIR}/JavaScriptCore.modulemap ${CMAKE_BINARY_DIR}/JavaScriptCore/Modules/module.modulemap COPYONLY)
# FIXME: Private module map requires full PrivateHeaders install.
# https://bugs.webkit.org/show_bug.cgi?id=312083
make_directory("${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/JavaScriptCore.framework")
configure_file(${JAVASCRIPTCORE_DIR}/framework.sb ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/JavaScriptCore.framework/framework.sb COPYONLY)
set(_jsc_fw "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/JavaScriptCore.framework")
if (NOT EXISTS "${_jsc_fw}/Headers")
file(CREATE_LINK "${JavaScriptCore_FRAMEWORK_HEADERS_DIR}/JavaScriptCore"
"${_jsc_fw}/Headers" SYMBOLIC)
endif ()
if (NOT EXISTS "${_jsc_fw}/PrivateHeaders")
file(CREATE_LINK "${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR}/JavaScriptCore"
"${_jsc_fw}/PrivateHeaders" SYMBOLIC)
endif ()
if (NOT EXISTS "${_jsc_fw}/Modules")
file(CREATE_LINK "${CMAKE_BINARY_DIR}/JavaScriptCore/Modules"
"${_jsc_fw}/Modules" SYMBOLIC)
endif ()
# Empty private modulemap prevents stale SDK JSC_Private module resolution.
file(WRITE "${CMAKE_BINARY_DIR}/JavaScriptCore/Modules/module.private.modulemap"
"framework module JavaScriptCore_Private [system] {
}
")
unset(_jsc_fw)