blob: efcc2e85a44099e38e8fc19795267d464c067492 [file] [log] [blame]
include(WebKitCommon)
set_property(DIRECTORY . PROPERTY FOLDER "WebKit")
if (PAL_LIBRARY_TYPE MATCHES STATIC)
add_definitions(-DSTATICALLY_LINKED_WITH_PAL=1)
endif ()
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}/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}/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/Launcher"
"${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}/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/FileAPI"
"${WEBKIT_DIR}/WebProcess/FullScreen"
"${WEBKIT_DIR}/WebProcess/Gamepad"
"${WEBKIT_DIR}/WebProcess/Geolocation"
"${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/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/Storage"
"${WEBKIT_DIR}/WebProcess/UserContent"
"${WEBKIT_DIR}/WebProcess/WebCoreSupport"
"${WEBKIT_DIR}/WebProcess/WebPage"
"${WEBKIT_DIR}/WebProcess/WebPage/RemoteLayerTree"
"${WEBKIT_DIR}/WebProcess/WebStorage"
"${CMAKE_SOURCE_DIR}/Source"
"${CMAKE_SOURCE_DIR}/WebKitLibraries"
)
set(PROTOCOL_GENERATOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
list(APPEND WebKit_UNIFIED_SOURCE_LIST_FILES
"Sources.txt"
)
set(WebKit_MESSAGES_IN_FILES
NetworkProcess/Cookies/WebCookieManager.messages.in
NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in
NetworkProcess/NetworkConnectionToWebProcess.messages.in
NetworkProcess/NetworkContentRuleListManager.messages.in
NetworkProcess/NetworkProcess.messages.in
NetworkProcess/NetworkResourceLoader.messages.in
NetworkProcess/NetworkSocketChannel.messages.in
NetworkProcess/NetworkSocketStream.messages.in
NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in
NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in
NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in
NetworkProcess/WebStorage/StorageManagerSet.messages.in
NetworkProcess/cache/CacheStorageEngineConnection.messages.in
NetworkProcess/webrtc/NetworkMDNSRegister.messages.in
NetworkProcess/webrtc/NetworkRTCMonitor.messages.in
NetworkProcess/webrtc/NetworkRTCProvider.messages.in
NetworkProcess/webrtc/NetworkRTCSocket.messages.in
PluginProcess/PluginControllerProxy.messages.in
PluginProcess/PluginProcess.messages.in
PluginProcess/WebProcessConnection.messages.in
Shared/AuxiliaryProcess.messages.in
Shared/WebConnection.messages.in
Shared/Authentication/AuthenticationManager.messages.in
Shared/Plugins/NPObjectMessageReceiver.messages.in
UIProcess/DrawingAreaProxy.messages.in
UIProcess/RemoteWebInspectorProxy.messages.in
UIProcess/VisitedLinkStore.messages.in
UIProcess/WebCookieManagerProxy.messages.in
UIProcess/WebFullScreenManagerProxy.messages.in
UIProcess/WebGeolocationManagerProxy.messages.in
UIProcess/WebInspectorProxy.messages.in
UIProcess/WebPageProxy.messages.in
UIProcess/WebPasteboardProxy.messages.in
UIProcess/WebProcessPool.messages.in
UIProcess/WebProcessProxy.messages.in
UIProcess/Automation/WebAutomationSession.messages.in
UIProcess/Downloads/DownloadProxy.messages.in
UIProcess/Network/NetworkProcessProxy.messages.in
UIProcess/Plugins/PluginProcessProxy.messages.in
UIProcess/UserContent/WebUserContentControllerProxy.messages.in
WebProcess/WebProcess.messages.in
WebProcess/Automation/WebAutomationSessionProxy.messages.in
WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in
WebProcess/FullScreen/WebFullScreenManager.messages.in
WebProcess/Geolocation/WebGeolocationManager.messages.in
WebProcess/Network/webrtc/WebMDNSRegister.messages.in
WebProcess/Network/webrtc/WebRTCMonitor.messages.in
WebProcess/Network/webrtc/WebRTCResolver.messages.in
WebProcess/Network/webrtc/WebRTCSocket.messages.in
WebProcess/Network/NetworkProcessConnection.messages.in
WebProcess/Network/WebResourceLoader.messages.in
WebProcess/Network/WebSocketChannel.messages.in
WebProcess/Network/WebSocketStream.messages.in
WebProcess/Notifications/WebNotificationManager.messages.in
WebProcess/Plugins/PluginProcessConnection.messages.in
WebProcess/Plugins/PluginProcessConnectionManager.messages.in
WebProcess/Plugins/PluginProxy.messages.in
WebProcess/Storage/WebSWClientConnection.messages.in
WebProcess/Storage/WebSWContextManagerConnection.messages.in
WebProcess/UserContent/WebUserContentController.messages.in
WebProcess/WebPage/DrawingArea.messages.in
WebProcess/WebPage/EventDispatcher.messages.in
WebProcess/WebPage/RemoteWebInspectorUI.messages.in
WebProcess/WebPage/VisitedLinkTableController.messages.in
WebProcess/WebPage/WebInspector.messages.in
WebProcess/WebPage/WebInspectorInterruptDispatcher.messages.in
WebProcess/WebPage/WebInspectorUI.messages.in
WebProcess/WebPage/WebPage.messages.in
WebProcess/WebStorage/StorageAreaMap.messages.in
)
if (${WebCore_LIBRARY_TYPE} STREQUAL STATIC)
# Link with WebCore as PRIVATE not to propagate WebCore to all users of WebKit.
set(WebKit_LIBRARIES
PRIVATE WebCore
PUBLIC WebCoreHeaderInterface
)
else ()
# All users of WebKit need to link WebCore if WebCore is a shared library.
if (APPLE)
set(WebKit_LIBRARIES PRIVATE WebCore)
else ()
set(WebKit_LIBRARIES PUBLIC WebCore)
endif ()
endif ()
set(WebProcess_LIBRARIES
WebKit
)
set(NetworkProcess_LIBRARIES
WebKit
)
set(PluginProcess_LIBRARIES
WebKit
)
if (ENABLE_GRAPHICS_CONTEXT_3D)
# 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_LIBRARIES
PRIVATE ${LIBEPOXY_LIBRARIES}
)
add_definitions(${LIBEPOXY_DEFINITIONS})
else ()
if (USE_OPENGL)
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
${OPENGL_INCLUDE_DIRS}
)
list(APPEND WebKit_LIBRARIES
PRIVATE ${OPENGL_LIBRARIES}
)
add_definitions(${OPENGL_DEFINITIONS})
elseif (USE_OPENGL_ES)
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
${OPENGLES2_INCLUDE_DIRS}
)
list(APPEND WebKit_LIBRARIES
PRIVATE ${OPENGLES2_LIBRARIES}
)
add_definitions(${OPENGLES2_DEFINITIONS})
endif ()
if (USE_EGL)
list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES
${EGL_INCLUDE_DIRS}
)
list(APPEND WebKit_LIBRARIES
PRIVATE ${EGL_LIBRARIES}
)
add_definitions(${EGL_DEFINITIONS})
endif ()
endif ()
endif ()
if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
list(APPEND WebKit_LIBRARIES PRIVATE 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_LIBRARIES PRIVATE 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
)
WEBKIT_FRAMEWORK_DECLARE(WebKit)
WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
# Helper macro which wraps the generate-message-receiver.py script
# _output_source is a list name which will contain generated sources.(eg. WebKit_SOURCES)
# _input_files are messages.in files to generate.
macro(GENERATE_MESSAGE_SOURCES _output_source _input_files)
foreach (_file ${_input_files})
get_filename_component(_name ${_file} NAME_WE)
add_custom_command(
OUTPUT ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessageReceiver.cpp ${WebKit_DERIVED_SOURCES_DIR}/${_name}Messages.h ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessagesReplies.h
MAIN_DEPENDENCY ${_file}
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
COMMAND ${PYTHON_EXECUTABLE} ${WEBKIT_DIR}/Scripts/generate-message-receiver.py ${_file} --implementation ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessageReceiver.cpp --header ${WebKit_DERIVED_SOURCES_DIR}/${_name}Messages.h --reply-header ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessagesReplies.h
WORKING_DIRECTORY ${WEBKIT_DIR}
VERBATIM)
list(APPEND ${_output_source} ${WebKit_DERIVED_SOURCES_DIR}/${_name}MessageReceiver.cpp)
endforeach ()
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/WebPreferencesInternalDebugFeatures.cpp.erb
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb
${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb
)
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}/WebPreferencesInternalDebugFeatures.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.cpp ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesKeys.h ${WebKit_DERIVED_SOURCES_DIR}/WebPreferencesStoreDefaultsMap.cpp
MAIN_DEPENDENCY ${WEBKIT_DIR}/Shared/WebPreferences.yaml
DEPENDS ${WebKit_WEB_PREFERENCES_TEMPLATES}
COMMAND ${RUBY_EXECUTABLE} ${WEBKIT_DIR}/Scripts/GeneratePreferences.rb --input ${WEBKIT_DIR}/Shared/WebPreferences.yaml --outputDir "${WebKit_DERIVED_SOURCES_DIR}"
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}/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)
add_dependencies(WebKit WebCore ${WEBKIT_EXTRA_DEPENDENCIES})
ADD_WEBKIT_PREFIX_HEADER(WebKit)
add_executable(WebProcess ${WebProcess_SOURCES})
ADD_WEBKIT_PREFIX_HEADER(WebProcess)
target_link_libraries(WebProcess ${WebProcess_LIBRARIES})
target_include_directories(WebProcess PRIVATE ${WebProcess_INCLUDE_DIRECTORIES})
if (WebKit_WebProcess_OUTPUT_NAME)
set_target_properties(WebProcess PROPERTIES OUTPUT_NAME ${WebKit_WebProcess_OUTPUT_NAME})
endif ()
add_executable(NetworkProcess ${NetworkProcess_SOURCES})
ADD_WEBKIT_PREFIX_HEADER(NetworkProcess)
target_link_libraries(NetworkProcess ${NetworkProcess_LIBRARIES})
target_include_directories(NetworkProcess PRIVATE ${NetworkProcess_INCLUDE_DIRECTORIES})
if (WebKit_NetworkProcess_OUTPUT_NAME)
set_target_properties(NetworkProcess PROPERTIES OUTPUT_NAME ${WebKit_NetworkProcess_OUTPUT_NAME})
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)
endif ()
# FIXME: Mac should build a plugin process.
if (ENABLE_PLUGIN_PROCESS AND NOT "${PORT}" STREQUAL "Mac")
add_definitions(-DENABLE_PLUGIN_PROCESS=1)
add_executable(PluginProcess ${PluginProcess_SOURCES})
ADD_WEBKIT_PREFIX_HEADER(PluginProcess)
target_link_libraries(PluginProcess ${PluginProcess_LIBRARIES})
target_include_directories(PluginProcess PRIVATE ${PluginProcess_INCLUDE_DIRECTORIES})
install(TARGETS PluginProcess DESTINATION "${LIBEXEC_INSTALL_DIR}")
if (COMPILER_IS_GCC_OR_CLANG)
WEBKIT_ADD_TARGET_CXX_FLAGS(PluginProcess -Wno-unused-parameter)
endif ()
if (WebKit_PluginProcess_OUTPUT_NAME)
set_target_properties(PluginProcess PROPERTIES OUTPUT_NAME ${WebKit_PluginProcess_OUTPUT_NAME})
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 ()