622 lines
24 KiB
CMake
622 lines
24 KiB
CMake
include(WebKitCommon)
|
|
|
|
set_property(DIRECTORY . PROPERTY FOLDER "WebKit")
|
|
|
|
set(WebKit_PRIVATE_INCLUDE_DIRECTORIES
|
|
"${CMAKE_BINARY_DIR}"
|
|
)
|
|
|
|
set(WebKit_INCLUDE_DIRECTORIES
|
|
"${WebCore_PRIVATE_FRAMEWORK_HEADERS_DIR}"
|
|
"${WebKit_FRAMEWORK_HEADERS_DIR}"
|
|
"${WebKit_DERIVED_SOURCES_DIR}"
|
|
"${WebKit_DERIVED_SOURCES_DIR}/include"
|
|
"${WEBKIT_DIR}"
|
|
"${WEBKIT_DIR}/GPUProcess"
|
|
"${WEBKIT_DIR}/GPUProcess/graphics"
|
|
"${WEBKIT_DIR}/GPUProcess/media"
|
|
"${WEBKIT_DIR}/GPUProcess/webrtc"
|
|
"${WEBKIT_DIR}/NetworkProcess"
|
|
"${WEBKIT_DIR}/NetworkProcess/Classifier"
|
|
"${WEBKIT_DIR}/NetworkProcess/Cookies"
|
|
"${WEBKIT_DIR}/NetworkProcess/CustomProtocols"
|
|
"${WEBKIT_DIR}/NetworkProcess/Downloads"
|
|
"${WEBKIT_DIR}/NetworkProcess/FileAPI"
|
|
"${WEBKIT_DIR}/NetworkProcess/IndexedDB"
|
|
"${WEBKIT_DIR}/NetworkProcess/ServiceWorker"
|
|
"${WEBKIT_DIR}/NetworkProcess/WebStorage"
|
|
"${WEBKIT_DIR}/NetworkProcess/cache"
|
|
"${WEBKIT_DIR}/NetworkProcess/watchos"
|
|
"${WEBKIT_DIR}/NetworkProcess/webrtc"
|
|
"${WEBKIT_DIR}/Platform"
|
|
"${WEBKIT_DIR}/Platform/IPC"
|
|
"${WEBKIT_DIR}/PluginProcess"
|
|
"${WEBKIT_DIR}/Shared"
|
|
"${WEBKIT_DIR}/Shared/API"
|
|
"${WEBKIT_DIR}/Shared/API/c"
|
|
"${WEBKIT_DIR}/Shared/ApplePay"
|
|
"${WEBKIT_DIR}/Shared/Authentication"
|
|
"${WEBKIT_DIR}/Shared/CoreIPCSupport"
|
|
"${WEBKIT_DIR}/Shared/Databases"
|
|
"${WEBKIT_DIR}/Shared/Databases/IndexedDB"
|
|
"${WEBKIT_DIR}/Shared/FileAPI"
|
|
"${WEBKIT_DIR}/Shared/Gamepad"
|
|
"${WEBKIT_DIR}/Shared/Plugins"
|
|
"${WEBKIT_DIR}/Shared/Plugins/Netscape"
|
|
"${WEBKIT_DIR}/Shared/Plugins/Netscape/x11"
|
|
"${WEBKIT_DIR}/Shared/RemoteLayerTree"
|
|
"${WEBKIT_DIR}/Shared/WebsiteData"
|
|
"${WEBKIT_DIR}/Shared/XR"
|
|
"${WEBKIT_DIR}/UIProcess"
|
|
"${WEBKIT_DIR}/UIProcess/API"
|
|
"${WEBKIT_DIR}/UIProcess/API/C"
|
|
"${WEBKIT_DIR}/UIProcess/API/cpp"
|
|
"${WEBKIT_DIR}/UIProcess/Authentication"
|
|
"${WEBKIT_DIR}/UIProcess/Automation"
|
|
"${WEBKIT_DIR}/UIProcess/Downloads"
|
|
"${WEBKIT_DIR}/UIProcess/Gamepad"
|
|
"${WEBKIT_DIR}/UIProcess/GPU"
|
|
"${WEBKIT_DIR}/UIProcess/Inspector"
|
|
"${WEBKIT_DIR}/UIProcess/Inspector/Agents"
|
|
"${WEBKIT_DIR}/UIProcess/Launcher"
|
|
"${WEBKIT_DIR}/UIProcess/Media"
|
|
"${WEBKIT_DIR}/UIProcess/Network"
|
|
"${WEBKIT_DIR}/UIProcess/Network/CustomProtocols"
|
|
"${WEBKIT_DIR}/UIProcess/Notifications"
|
|
"${WEBKIT_DIR}/UIProcess/Plugins"
|
|
"${WEBKIT_DIR}/UIProcess/RemoteLayerTree"
|
|
"${WEBKIT_DIR}/UIProcess/UserContent"
|
|
"${WEBKIT_DIR}/UIProcess/WebAuthentication"
|
|
"${WEBKIT_DIR}/UIProcess/WebAuthentication/Mock"
|
|
"${WEBKIT_DIR}/UIProcess/WebsiteData"
|
|
"${WEBKIT_DIR}/UIProcess/XR"
|
|
"${WEBKIT_DIR}/WebAuthnProcess"
|
|
"${WEBKIT_DIR}/WebProcess"
|
|
"${WEBKIT_DIR}/WebProcess/ApplePay"
|
|
"${WEBKIT_DIR}/WebProcess/ApplicationCache"
|
|
"${WEBKIT_DIR}/WebProcess/Automation"
|
|
"${WEBKIT_DIR}/WebProcess/Cache"
|
|
"${WEBKIT_DIR}/WebProcess/Databases"
|
|
"${WEBKIT_DIR}/WebProcess/Databases/IndexedDB"
|
|
"${WEBKIT_DIR}/WebProcess/EncryptedMedia"
|
|
"${WEBKIT_DIR}/WebProcess/FileAPI"
|
|
"${WEBKIT_DIR}/WebProcess/FullScreen"
|
|
"${WEBKIT_DIR}/WebProcess/Gamepad"
|
|
"${WEBKIT_DIR}/WebProcess/Geolocation"
|
|
"${WEBKIT_DIR}/WebProcess/GPU"
|
|
"${WEBKIT_DIR}/WebProcess/GPU/graphics"
|
|
"${WEBKIT_DIR}/WebProcess/GPU/media"
|
|
"${WEBKIT_DIR}/WebProcess/GPU/webrtc"
|
|
"${WEBKIT_DIR}/WebProcess/IconDatabase"
|
|
"${WEBKIT_DIR}/WebProcess/InjectedBundle"
|
|
"${WEBKIT_DIR}/WebProcess/InjectedBundle/API"
|
|
"${WEBKIT_DIR}/WebProcess/InjectedBundle/API/c"
|
|
"${WEBKIT_DIR}/WebProcess/InjectedBundle/DOM"
|
|
"${WEBKIT_DIR}/WebProcess/Inspector"
|
|
"${WEBKIT_DIR}/WebProcess/Launching"
|
|
"${WEBKIT_DIR}/WebProcess/MediaCache"
|
|
"${WEBKIT_DIR}/WebProcess/MediaStream"
|
|
"${WEBKIT_DIR}/WebProcess/Network"
|
|
"${WEBKIT_DIR}/WebProcess/Network/webrtc"
|
|
"${WEBKIT_DIR}/WebProcess/Notifications"
|
|
"${WEBKIT_DIR}/WebProcess/OriginData"
|
|
"${WEBKIT_DIR}/WebProcess/Plugins"
|
|
"${WEBKIT_DIR}/WebProcess/Plugins/Netscape"
|
|
"${WEBKIT_DIR}/WebProcess/ResourceCache"
|
|
"${WEBKIT_DIR}/WebProcess/Speech"
|
|
"${WEBKIT_DIR}/WebProcess/Storage"
|
|
"${WEBKIT_DIR}/WebProcess/UserContent"
|
|
"${WEBKIT_DIR}/WebProcess/WebCoreSupport"
|
|
"${WEBKIT_DIR}/WebProcess/WebPage"
|
|
"${WEBKIT_DIR}/WebProcess/WebPage/RemoteLayerTree"
|
|
"${WEBKIT_DIR}/WebProcess/WebStorage"
|
|
"${WEBKIT_DIR}/WebProcess/XR"
|
|
"${CMAKE_SOURCE_DIR}/Source"
|
|
"${CMAKE_SOURCE_DIR}/WebKitLibraries"
|
|
)
|
|
|
|
SET(WebKit_LOCAL_INCLUDE_DIRECTORIES
|
|
"${WEBCORE_DIR}/css"
|
|
)
|
|
|
|
set(PROTOCOL_GENERATOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
|
|
|
|
list(APPEND WebKit_UNIFIED_SOURCE_LIST_FILES
|
|
"Sources.txt"
|
|
)
|
|
|
|
set(WebKit_MESSAGES_IN_FILES
|
|
GPUProcess/GPUConnectionToWebProcess
|
|
GPUProcess/GPUProcess
|
|
|
|
GPUProcess/graphics/RemoteGraphicsContextGL
|
|
GPUProcess/graphics/RemoteRenderingBackend
|
|
|
|
GPUProcess/media/RemoteAudioDestinationManager
|
|
GPUProcess/media/RemoteAudioSessionProxy
|
|
GPUProcess/media/RemoteCDMFactoryProxy
|
|
GPUProcess/media/RemoteCDMInstanceProxy
|
|
GPUProcess/media/RemoteCDMInstanceSessionProxy
|
|
GPUProcess/media/RemoteCDMProxy
|
|
GPUProcess/media/RemoteLegacyCDMFactoryProxy
|
|
GPUProcess/media/RemoteLegacyCDMProxy
|
|
GPUProcess/media/RemoteLegacyCDMSessionProxy
|
|
GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy
|
|
GPUProcess/media/RemoteMediaPlayerManagerProxy
|
|
GPUProcess/media/RemoteMediaPlayerProxy
|
|
GPUProcess/media/RemoteMediaResourceManager
|
|
GPUProcess/media/RemoteMediaSourceProxy
|
|
GPUProcess/media/RemoteRemoteCommandListenerProxy
|
|
GPUProcess/media/RemoteSourceBufferProxy
|
|
|
|
GPUProcess/webrtc/LibWebRTCCodecsProxy
|
|
GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager
|
|
GPUProcess/webrtc/RemoteMediaRecorder
|
|
GPUProcess/webrtc/RemoteMediaRecorderManager
|
|
GPUProcess/webrtc/RemoteSampleBufferDisplayLayer
|
|
GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager
|
|
|
|
NetworkProcess/Cookies/WebCookieManager
|
|
|
|
NetworkProcess/IndexedDB/WebIDBServer
|
|
|
|
NetworkProcess/NetworkBroadcastChannelRegistry
|
|
NetworkProcess/NetworkConnectionToWebProcess
|
|
NetworkProcess/NetworkContentRuleListManager
|
|
NetworkProcess/NetworkProcess
|
|
NetworkProcess/NetworkResourceLoader
|
|
NetworkProcess/NetworkSocketChannel
|
|
NetworkProcess/NetworkSocketStream
|
|
|
|
NetworkProcess/ServiceWorker/ServiceWorkerFetchTask
|
|
NetworkProcess/ServiceWorker/WebSWServerConnection
|
|
NetworkProcess/ServiceWorker/WebSWServerToContextConnection
|
|
|
|
NetworkProcess/WebStorage/StorageManagerSet
|
|
|
|
NetworkProcess/cache/CacheStorageEngineConnection
|
|
|
|
NetworkProcess/webrtc/NetworkMDNSRegister
|
|
NetworkProcess/webrtc/NetworkRTCMonitor
|
|
NetworkProcess/webrtc/NetworkRTCProvider
|
|
NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy
|
|
|
|
PluginProcess/PluginControllerProxy
|
|
PluginProcess/PluginProcess
|
|
PluginProcess/WebProcessConnection
|
|
|
|
Shared/AuxiliaryProcess
|
|
Shared/WebConnection
|
|
|
|
Shared/Authentication/AuthenticationManager
|
|
|
|
Shared/Plugins/NPObjectMessageReceiver
|
|
|
|
UIProcess/DrawingAreaProxy
|
|
|
|
UIProcess/Media/RemoteMediaSessionCoordinatorProxy
|
|
|
|
UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager
|
|
UIProcess/SpeechRecognitionServer
|
|
UIProcess/VisitedLinkStore
|
|
UIProcess/WebCookieManagerProxy
|
|
UIProcess/WebFullScreenManagerProxy
|
|
UIProcess/WebGeolocationManagerProxy
|
|
UIProcess/WebPageProxy
|
|
UIProcess/WebPasteboardProxy
|
|
UIProcess/WebProcessPool
|
|
UIProcess/WebProcessProxy
|
|
|
|
UIProcess/Automation/WebAutomationSession
|
|
|
|
UIProcess/Downloads/DownloadProxy
|
|
|
|
UIProcess/GPU/GPUProcessProxy
|
|
|
|
UIProcess/Inspector/RemoteWebInspectorUIProxy
|
|
UIProcess/Inspector/WebInspectorUIProxy
|
|
|
|
UIProcess/Network/NetworkProcessProxy
|
|
|
|
UIProcess/Plugins/PluginProcessProxy
|
|
|
|
UIProcess/UserContent/WebUserContentControllerProxy
|
|
|
|
UIProcess/XR/PlatformXRSystem
|
|
|
|
WebProcess/WebProcess
|
|
|
|
WebProcess/Automation/WebAutomationSessionProxy
|
|
|
|
WebProcess/Databases/IndexedDB/WebIDBConnectionToServer
|
|
|
|
WebProcess/FullScreen/WebFullScreenManager
|
|
|
|
WebProcess/GPU/GPUProcessConnection
|
|
|
|
WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy
|
|
WebProcess/GPU/graphics/RemoteRenderingBackendProxy
|
|
|
|
WebProcess/GPU/media/RemoteAudioHardwareListener
|
|
WebProcess/GPU/media/MediaPlayerPrivateRemote
|
|
WebProcess/GPU/media/MediaSourcePrivateRemote
|
|
WebProcess/GPU/media/RemoteAudioSession
|
|
WebProcess/GPU/media/RemoteAudioSourceProviderManager
|
|
WebProcess/GPU/media/RemoteCDMInstance
|
|
WebProcess/GPU/media/RemoteCDMInstanceSession
|
|
WebProcess/GPU/media/RemoteLegacyCDMSession
|
|
WebProcess/GPU/media/RemoteRemoteCommandListener
|
|
WebProcess/GPU/media/SourceBufferPrivateRemote
|
|
|
|
WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager
|
|
WebProcess/GPU/webrtc/LibWebRTCCodecs
|
|
WebProcess/GPU/webrtc/SampleBufferDisplayLayer
|
|
|
|
WebProcess/Geolocation/WebGeolocationManager
|
|
|
|
WebProcess/Inspector/RemoteWebInspectorUI
|
|
WebProcess/Inspector/WebInspector
|
|
WebProcess/Inspector/WebInspectorInterruptDispatcher
|
|
WebProcess/Inspector/WebInspectorUI
|
|
|
|
WebProcess/MediaSession/RemoteMediaSessionCoordinator
|
|
|
|
WebProcess/Network/webrtc/LibWebRTCNetwork
|
|
WebProcess/Network/webrtc/RTCDataChannelRemoteManager
|
|
WebProcess/Network/webrtc/WebMDNSRegister
|
|
WebProcess/Network/webrtc/WebRTCMonitor
|
|
WebProcess/Network/webrtc/WebRTCResolver
|
|
|
|
WebProcess/Network/NetworkProcessConnection
|
|
WebProcess/Network/WebResourceLoader
|
|
WebProcess/Network/WebSocketChannel
|
|
WebProcess/Network/WebSocketStream
|
|
|
|
WebProcess/Notifications/WebNotificationManager
|
|
|
|
WebProcess/Plugins/PluginProcessConnection
|
|
WebProcess/Plugins/PluginProcessConnectionManager
|
|
WebProcess/Plugins/PluginProxy
|
|
|
|
WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager
|
|
|
|
WebProcess/Storage/WebSWClientConnection
|
|
WebProcess/Storage/WebSWContextManagerConnection
|
|
|
|
WebProcess/UserContent/WebUserContentController
|
|
|
|
WebProcess/WebCoreSupport/WebBroadcastChannelRegistry
|
|
WebProcess/WebCoreSupport/WebSpeechRecognitionConnection
|
|
|
|
WebProcess/WebPage/DrawingArea
|
|
WebProcess/WebPage/EventDispatcher
|
|
WebProcess/WebPage/VisitedLinkTableController
|
|
WebProcess/WebPage/WebPage
|
|
|
|
WebProcess/WebStorage/StorageAreaMap
|
|
|
|
WebProcess/XR/PlatformXRSystemProxy
|
|
)
|
|
|
|
set(WebKit_FRAMEWORKS
|
|
JavaScriptCore
|
|
PAL
|
|
WTF
|
|
WebCore
|
|
)
|
|
if (NOT USE_SYSTEM_MALLOC)
|
|
list(APPEND WebKit_FRAMEWORKS bmalloc)
|
|
endif ()
|
|
|
|
set(WebProcess_LIBRARIES WebKit)
|
|
set(NetworkProcess_LIBRARIES WebKit)
|
|
set(GPUProcess_LIBRARIES WebKit)
|
|
set(PluginProcess_LIBRARIES WebKit)
|
|
|
|
if (ENABLE_ENCRYPTED_MEDIA AND ENABLE_OPENCDM)
|
|
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
|
|
${OPENCDM_INCLUDE_DIRS}
|
|
)
|
|
endif ()
|
|
|
|
# For platforms that want to use system-provided OpenGL (ES) / EGL headers,
|
|
# these include directories, libraries or definitions need to be
|
|
# added before the ANGLE directories.
|
|
if (USE_LIBEPOXY)
|
|
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
|
|
${LIBEPOXY_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES
|
|
${LIBEPOXY_LIBRARIES}
|
|
)
|
|
add_definitions(${LIBEPOXY_DEFINITIONS})
|
|
elseif (USE_ANGLE_EGL)
|
|
# Prepend to make sure the ANGLE headers are found before system headers
|
|
list(PREPEND WebKit_PRIVATE_LIBRARIES
|
|
ANGLE::GLES
|
|
ANGLE::EGL
|
|
)
|
|
else ()
|
|
if (USE_OPENGL)
|
|
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
|
|
${OPENGL_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES
|
|
${OPENGL_LIBRARIES}
|
|
)
|
|
add_definitions(${OPENGL_DEFINITIONS})
|
|
elseif (USE_OPENGL_ES)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES OpenGL::GLES)
|
|
endif ()
|
|
|
|
if (USE_EGL)
|
|
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
|
|
${EGL_INCLUDE_DIRS}
|
|
)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES
|
|
${EGL_LIBRARIES}
|
|
)
|
|
add_definitions(${EGL_DEFINITIONS})
|
|
endif ()
|
|
endif ()
|
|
|
|
if (USE_LIBWEBRTC)
|
|
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/"
|
|
"${THIRDPARTY_DIR}/libwebrtc/Source/webrtc"
|
|
"${THIRDPARTY_DIR}/libwebrtc/Source/third_party/abseil-cpp")
|
|
list(APPEND WebKit_LIBRARIES webrtc)
|
|
endif ()
|
|
|
|
if (ATOMICS_REQUIRE_LIBATOMIC)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES atomic)
|
|
endif ()
|
|
|
|
if (UNIX)
|
|
check_function_exists(shm_open SHM_OPEN_EXISTS)
|
|
if (NOT SHM_OPEN_EXISTS)
|
|
set(CMAKE_REQUIRED_LIBRARIES rt)
|
|
check_function_exists(shm_open SHM_OPEN_REQUIRES_LIBRT)
|
|
if (SHM_OPEN_REQUIRES_LIBRT)
|
|
list(APPEND WebKit_PRIVATE_LIBRARIES rt)
|
|
endif ()
|
|
unset(CMAKE_REQUIRED_LIBRARIES)
|
|
endif ()
|
|
endif ()
|
|
|
|
macro(ADD_WEBKIT_PREFIX_HEADER _target)
|
|
if (WebKit_USE_PREFIX_HEADER)
|
|
get_target_property(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS)
|
|
if (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND")
|
|
set(OLD_COMPILE_FLAGS "")
|
|
endif ()
|
|
set_target_properties(${_target} PROPERTIES COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -include ${WEBKIT_DIR}/WebKit2Prefix.h")
|
|
endif ()
|
|
endmacro()
|
|
|
|
set(WebKit_AUTOMATION_PROTOCOL_GENERATOR_EXTRA_FLAGS)
|
|
|
|
set(WebKit_INTERFACE_LIBRARIES WebKit)
|
|
set(WebKit_INTERFACE_INCLUDE_DIRECTORIES
|
|
${WebKit_FRAMEWORK_HEADERS_DIR}
|
|
${WebKit_PRIVATE_FRAMEWORK_HEADERS_DIR}
|
|
)
|
|
set(WebKit_INTERFACE_DEPENDENCIES
|
|
NetworkProcess
|
|
WebProcess
|
|
)
|
|
|
|
WEBKIT_EXECUTABLE_DECLARE(WebProcess)
|
|
WEBKIT_EXECUTABLE_DECLARE(NetworkProcess)
|
|
|
|
if (ENABLE_GPU_PROCESS)
|
|
WEBKIT_EXECUTABLE_DECLARE(GPUProcess)
|
|
list(APPEND WebKit_INTERFACE_DEPENDENCIES GPUProcess)
|
|
endif ()
|
|
|
|
if (ENABLE_PLUGIN_PROCESS)
|
|
WEBKIT_EXECUTABLE_DECLARE(PluginProcess)
|
|
list(APPEND WebKit_INTERFACE_DEPENDENCIES PluginProcess)
|
|
endif ()
|
|
|
|
WEBKIT_FRAMEWORK_DECLARE(WebKit)
|
|
WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
|
|
|
|
if (WebKit_PUBLIC_FRAMEWORK_HEADERS)
|
|
WEBKIT_COPY_FILES(WebKit_CopyHeaders
|
|
DESTINATION ${WebKit_FRAMEWORK_HEADERS_DIR}/WebKit
|
|
FILES ${WebKit_PUBLIC_FRAMEWORK_HEADERS}
|
|
FLATTENED
|
|
)
|
|
list(APPEND WebKit_DEPENDENCIES WebKit_CopyHeaders)
|
|
endif ()
|
|
|
|
if (WebKit_PRIVATE_FRAMEWORK_HEADERS)
|
|
WEBKIT_COPY_FILES(WebKit_CopyPrivateHeaders
|
|
DESTINATION ${WebKit_PRIVATE_FRAMEWORK_HEADERS_DIR}/WebKit
|
|
FILES ${WebKit_PRIVATE_FRAMEWORK_HEADERS}
|
|
FLATTENED
|
|
)
|
|
list(APPEND WebKit_INTERFACE_DEPENDENCIES WebKit_CopyPrivateHeaders)
|
|
endif ()
|
|
|
|
# Helper macro which wraps the generate-message-receiver.py script
|
|
# _output_source is a list name which will contain generated sources.(eg. WebKit_SOURCES)
|
|
# _inputs are messages.in files to generate.
|
|
macro(GENERATE_MESSAGE_SOURCES _output_source _inputs)
|
|
unset(_input_files)
|
|
unset(_outputs)
|
|
foreach (_file IN ITEMS ${_inputs})
|
|
get_filename_component(_name ${_file} NAME_WE)
|
|
list(APPEND _input_files ${WEBKIT_DIR}/${_file}.messages.in)
|
|
list(APPEND _outputs
|
|
${WebKit_DERIVED_SOURCES_DIR}/${_name}MessageReceiver.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/${_name}Messages.h
|
|
${WebKit_DERIVED_SOURCES_DIR}/${_name}MessagesReplies.h
|
|
)
|
|
list(APPEND ${_output_source} ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessageReceiver.cpp)
|
|
endforeach ()
|
|
list(APPEND ${_output_source} ${WebKit_DERIVED_SOURCES_DIR}/MessageNames.cpp)
|
|
|
|
add_custom_command(
|
|
OUTPUT
|
|
${WebKit_DERIVED_SOURCES_DIR}/MessageArgumentDescriptions.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/MessageNames.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/MessageNames.h
|
|
${_outputs}
|
|
MAIN_DEPENDENCY ${WEBKIT_DIR}/Scripts/generate-message-receiver.py
|
|
DEPENDS
|
|
${WEBKIT_DIR}/Scripts/webkit/__init__.py
|
|
${WEBKIT_DIR}/Scripts/webkit/messages.py
|
|
${WEBKIT_DIR}/Scripts/webkit/model.py
|
|
${WEBKIT_DIR}/Scripts/webkit/parser.py
|
|
${_input_files}
|
|
COMMAND ${PYTHON_EXECUTABLE} ${WEBKIT_DIR}/Scripts/generate-message-receiver.py ${WEBKIT_DIR} ${_inputs}
|
|
WORKING_DIRECTORY ${WebKit_DERIVED_SOURCES_DIR}
|
|
VERBATIM
|
|
)
|
|
endmacro()
|
|
GENERATE_MESSAGE_SOURCES(WebKit_DERIVED_SOURCES "${WebKit_MESSAGES_IN_FILES}")
|
|
|
|
set(WebKit_AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/cpp_generator.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_header.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_implementation.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generator.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/generator_templates.py
|
|
${PROTOCOL_GENERATOR_SCRIPTS_DIR}/codegen/models.py
|
|
)
|
|
|
|
set(WebKit_AUTOMATION_PROTOCOL_GENERATOR_INPUTS
|
|
${WEBKIT_DIR}/UIProcess/Automation/Automation.json
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WebKit_DERIVED_SOURCES_DIR}/AutomationBackendDispatchers.h ${WebKit_DERIVED_SOURCES_DIR}/AutomationBackendDispatchers.cpp ${WebKit_DERIVED_SOURCES_DIR}/AutomationProtocolObjects.h ${WebKit_DERIVED_SOURCES_DIR}/AutomationProtocolObjects.cpp ${WebKit_DERIVED_SOURCES_DIR}/AutomationFrontendDispatchers.h ${WebKit_DERIVED_SOURCES_DIR}/AutomationFrontendDispatchers.cpp
|
|
MAIN_DEPENDENCY ${WebKit_AUTOMATION_PROTOCOL_GENERATOR_INPUTS}
|
|
DEPENDS ${WebKit_AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS}
|
|
COMMAND ${PYTHON_EXECUTABLE} ${PROTOCOL_GENERATOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir "${WebKit_DERIVED_SOURCES_DIR}" --framework WebKit ${WebKit_AUTOMATION_PROTOCOL_GENERATOR_EXTRA_FLAGS} --backend ${WebKit_AUTOMATION_PROTOCOL_GENERATOR_INPUTS}
|
|
VERBATIM)
|
|
|
|
list(APPEND WebKit_HEADERS
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationBackendDispatchers.h
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationFrontendDispatchers.h
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationProtocolObjects.h
|
|
)
|
|
|
|
list(APPEND WebKit_SOURCES
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationBackendDispatchers.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationFrontendDispatchers.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/AutomationProtocolObjects.cpp
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxyScriptSource.h ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxy.min.js
|
|
MAIN_DEPENDENCY ${WEBKIT_DIR}/WebProcess/Automation/WebAutomationSessionProxy.js
|
|
DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
|
|
COMMAND ${CMAKE_COMMAND} -E echo "//# sourceURL=__InjectedScript_WebAutomationSessionProxy.js" > ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxy.min.js
|
|
COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py < ${WEBKIT_DIR}/WebProcess/Automation/WebAutomationSessionProxy.js >> ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxy.min.js
|
|
COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl WebAutomationSessionProxyScriptSource ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxy.min.js ${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxyScriptSource.h
|
|
VERBATIM)
|
|
|
|
list(APPEND WebKit_HEADERS
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebAutomationSessionProxyScriptSource.h
|
|
)
|
|
|
|
set(WebKit_WEB_PREFERENCES_TEMPLATES
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesGetterSetters.cpp.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb
|
|
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb
|
|
)
|
|
|
|
set(WebKit_WEB_PREFERENCES
|
|
${WTF_SCRIPTS_DIR}/Preferences/WebPreferences.yaml
|
|
${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesDebug.yaml
|
|
${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesExperimental.yaml
|
|
${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesInternal.yaml
|
|
)
|
|
|
|
set_source_files_properties(${WebKit_WEB_PREFERENCES} PROPERTIES GENERATED TRUE)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WebKit_DERIVED_SOURCES_DIR}/WebPageUpdatePreferences.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesDefinitions.h ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesExperimentalFeatures.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesGetterSetters.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesInternalDebugFeatures.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.h ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesStoreDefaultsMap.cpp
|
|
DEPENDS ${WebKit_WEB_PREFERENCES_TEMPLATES} ${WebKit_WEB_PREFERENCES} WTF_CopyPreferences
|
|
COMMAND ${RUBY_EXECUTABLE} ${WTF_SCRIPTS_DIR}/GeneratePreferences.rb --frontend WebKit --base ${WTF_SCRIPTS_DIR}/Preferences/WebPreferences.yaml --debug ${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesDebug.yaml --experimental ${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesExperimental.yaml --internal ${WTF_SCRIPTS_DIR}/Preferences/WebPreferencesInternal.yaml --outputDir "${WebKit_DERIVED_SOURCES_DIR}" --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesGetterSetters.cpp.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb --template ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb
|
|
VERBATIM)
|
|
|
|
list(APPEND WebKit_HEADERS
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesDefinitions.h
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.h
|
|
)
|
|
|
|
list(APPEND WebKit_SOURCES
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPageUpdatePreferences.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesExperimentalFeatures.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesGetterSetters.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesInternalDebugFeatures.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.cpp
|
|
${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesStoreDefaultsMap.cpp
|
|
)
|
|
|
|
list(APPEND WebKit_SOURCES ${WebKit_DERIVED_SOURCES})
|
|
|
|
WEBKIT_COMPUTE_SOURCES(WebKit)
|
|
WEBKIT_FRAMEWORK(WebKit)
|
|
WEBKIT_FRAMEWORK_TARGET(WebKit)
|
|
ADD_WEBKIT_PREFIX_HEADER(WebKit)
|
|
|
|
list(APPEND WebProcess_PRIVATE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:WebKit,INCLUDE_DIRECTORIES>)
|
|
WEBKIT_EXECUTABLE(WebProcess)
|
|
ADD_WEBKIT_PREFIX_HEADER(WebProcess)
|
|
|
|
list(APPEND NetworkProcess_PRIVATE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:WebKit,INCLUDE_DIRECTORIES>)
|
|
WEBKIT_EXECUTABLE(NetworkProcess)
|
|
ADD_WEBKIT_PREFIX_HEADER(NetworkProcess)
|
|
|
|
if (ENABLE_GPU_PROCESS)
|
|
list(APPEND GPUProcess_PRIVATE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:WebKit,INCLUDE_DIRECTORIES>)
|
|
WEBKIT_EXECUTABLE(GPUProcess)
|
|
ADD_WEBKIT_PREFIX_HEADER(GPUProcess)
|
|
endif ()
|
|
|
|
if (ENABLE_PLUGIN_PROCESS)
|
|
list(APPEND PluginProcess_PRIVATE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:WebKit,INCLUDE_DIRECTORIES>)
|
|
WEBKIT_EXECUTABLE(PluginProcess)
|
|
ADD_WEBKIT_PREFIX_HEADER(PluginProcess)
|
|
endif ()
|
|
|
|
if (COMPILER_IS_GCC_OR_CLANG)
|
|
WEBKIT_ADD_TARGET_CXX_FLAGS(WebKit -Wno-unused-parameter)
|
|
WEBKIT_ADD_TARGET_CXX_FLAGS(WebProcess -Wno-unused-parameter)
|
|
WEBKIT_ADD_TARGET_CXX_FLAGS(NetworkProcess -Wno-unused-parameter)
|
|
if (ENABLE_GPU_PROCESS)
|
|
WEBKIT_ADD_TARGET_CXX_FLAGS(GPUProcess -Wno-unused-parameter)
|
|
endif ()
|
|
if (ENABLE_PLUGIN_PROCESS)
|
|
WEBKIT_ADD_TARGET_CXX_FLAGS(PluginProcess -Wno-unused-parameter)
|
|
endif ()
|
|
endif ()
|
|
|
|
if ("${PORT}" STREQUAL "Mac")
|
|
WEBKIT_DEFINE_XPC_SERVICES()
|
|
else ()
|
|
WEBKIT_POPULATE_LIBRARY_VERSION(WEBKIT)
|
|
|
|
set_target_properties(WebKit PROPERTIES VERSION ${WEBKIT_VERSION} SOVERSION ${WEBKIT_VERSION_MAJOR})
|
|
|
|
install(TARGETS WebKit WebProcess NetworkProcess
|
|
LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
|
|
RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}"
|
|
)
|
|
endif ()
|