[CMake] Add WebKit::WebKit target
https://bugs.webkit.org/show_bug.cgi?id=210033

Reviewed by Fujii Hironori.

.:

Use SET_AND_EXPOSE_TO_BUILD for the Plugin process since ENABLE(PLUGIN_PROCESS)
is used in the source code.

* Source/cmake/OptionsGTK.cmake:

Source/WebKit:

Use WEBKIT_EXECUTABLE macros for the Process executables. Rename the output
file names to fit with the macro's expectations.

Add Headers.cmake which lists out all the public headers that are currently
shared by the PlayStation and Windows ports. This is then included on each
platform that is using it. Additionally use WEBKIT_COPY_FILES to create a
target which copies headers.

Finally use WEBKIT_FRAMEWORK_TARGET to create a WebKit target. Its dependent
on the WebKit library itself, the processes being built, and any headers that
are copied. This ensures that everything is built for dependent targets.

* CMakeLists.txt:
* Headers.cmake: Copied from Source/WebKit/PlatformPlayStation.cmake.
* PlatformFTW.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* PlatformPlayStation.cmake:
* PlatformWPE.cmake:
* PlatformWin.cmake:

Tools:

Use the WebKit::WebKit target for MiniBrowser and TestWebKit. This removes
the need to have WebProcess and NetworkProcess as dependencies since they are
attached to the WebKit::WebKit target.

Remove references to WebKitFrameworkHeaders as it is now WebKit_CopyHeaders.
It is also a dependency of WebKit::WebKit so it does not need to be listed
as a dependency.

* MiniBrowser/win/CMakeLists.txt:
* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformPlayStation.cmake:
* TestWebKitAPI/PlatformWin.cmake:
* WebKitTestRunner/CMakeLists.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/ChangeLog b/ChangeLog
index 349dc07..98c07f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2020-04-05  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WebKit::WebKit target
+        https://bugs.webkit.org/show_bug.cgi?id=210033
+
+        Reviewed by Fujii Hironori.
+
+        Use SET_AND_EXPOSE_TO_BUILD for the Plugin process since ENABLE(PLUGIN_PROCESS)
+        is used in the source code.
+
+        * Source/cmake/OptionsGTK.cmake:
+
 2020-04-02  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, reverting r259390.
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt
index 0cdb578..2c88807 100644
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -360,12 +360,52 @@
     endif ()
 endmacro()
 
-set(WebKit_AUTOMATION_PROTOCOL_GENERATOR_EXTRA_FLAGS
+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)
 #   _input_files are messages.in files to generate.
@@ -469,42 +509,31 @@
     ${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})
+WEBKIT_FRAMEWORK_TARGET(WebKit)
 ADD_WEBKIT_PREFIX_HEADER(WebKit)
 
-add_executable(WebProcess ${WebProcess_SOURCES})
+list(APPEND WebProcess_PRIVATE_INCLUDE_DIRECTORIES ${WebKit_PRIVATE_INCLUDE_DIRECTORIES})
+WEBKIT_EXECUTABLE(WebProcess)
 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})
+list(APPEND NetworkProcess_PRIVATE_INCLUDE_DIRECTORIES ${WebKit_PRIVATE_INCLUDE_DIRECTORIES})
+WEBKIT_EXECUTABLE(NetworkProcess)
 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 (ENABLE_GPU_PROCESS)
-    add_executable(GPUProcess ${GPUProcess_SOURCES})
+    list(APPEND GPUProcess_PRIVATE_INCLUDE_DIRECTORIES ${WebKit_PRIVATE_INCLUDE_DIRECTORIES})
+    WEBKIT_EXECUTABLE(GPUProcess)
     ADD_WEBKIT_PREFIX_HEADER(GPUProcess)
-    target_link_libraries(GPUProcess ${GPUProcess_LIBRARIES})
-    target_include_directories(GPUProcess PRIVATE ${GPUProcess_INCLUDE_DIRECTORIES})
+endif ()
 
-    if (WebKit_GPUProcess_OUTPUT_NAME)
-        set_target_properties(GPUProcess PROPERTIES OUTPUT_NAME ${WebKit_GPUProcess_OUTPUT_NAME})
-    endif ()
+if (ENABLE_PLUGIN_PROCESS)
+    list(APPEND PluginProcess_PRIVATE_INCLUDE_DIRECTORIES ${WebKit_PRIVATE_INCLUDE_DIRECTORIES})
+    WEBKIT_EXECUTABLE(PluginProcess)
+    ADD_WEBKIT_PREFIX_HEADER(PluginProcess)
 endif ()
 
 if (COMPILER_IS_GCC_OR_CLANG)
@@ -514,24 +543,9 @@
     if (ENABLE_GPU_PROCESS)
         WEBKIT_ADD_TARGET_CXX_FLAGS(GPUProcess -Wno-unused-parameter)
     endif ()
-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)
+    if (ENABLE_PLUGIN_PROCESS)
         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")
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index be5aad9..92de1fb 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,31 @@
+2020-04-05  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WebKit::WebKit target
+        https://bugs.webkit.org/show_bug.cgi?id=210033
+
+        Reviewed by Fujii Hironori.
+
+        Use WEBKIT_EXECUTABLE macros for the Process executables. Rename the output
+        file names to fit with the macro's expectations.
+
+        Add Headers.cmake which lists out all the public headers that are currently
+        shared by the PlayStation and Windows ports. This is then included on each
+        platform that is using it. Additionally use WEBKIT_COPY_FILES to create a
+        target which copies headers.
+
+        Finally use WEBKIT_FRAMEWORK_TARGET to create a WebKit target. Its dependent
+        on the WebKit library itself, the processes being built, and any headers that
+        are copied. This ensures that everything is built for dependent targets.
+
+        * CMakeLists.txt:
+        * Headers.cmake: Copied from Source/WebKit/PlatformPlayStation.cmake.
+        * PlatformFTW.cmake:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * PlatformPlayStation.cmake:
+        * PlatformWPE.cmake:
+        * PlatformWin.cmake:
+
 2020-04-05  Zan Dobersek  <zdobersek@igalia.com>
 
         Unreviewed, adding missing header inclusions to get
diff --git a/Source/WebKit/Headers.cmake b/Source/WebKit/Headers.cmake
new file mode 100644
index 0000000..4363970
--- /dev/null
+++ b/Source/WebKit/Headers.cmake
@@ -0,0 +1,149 @@
+set(WebKit_PUBLIC_FRAMEWORK_HEADERS
+    Shared/API/c/WKArray.h
+    Shared/API/c/WKBase.h
+    Shared/API/c/WKCertificateInfo.h
+    Shared/API/c/WKConnectionRef.h
+    Shared/API/c/WKContextMenuItem.h
+    Shared/API/c/WKContextMenuItemTypes.h
+    Shared/API/c/WKData.h
+    Shared/API/c/WKDeclarationSpecifiers.h
+    Shared/API/c/WKDeprecated.h
+    Shared/API/c/WKDiagnosticLoggingResultType.h
+    Shared/API/c/WKDictionary.h
+    Shared/API/c/WKErrorRef.h
+    Shared/API/c/WKEvent.h
+    Shared/API/c/WKFindOptions.h
+    Shared/API/c/WKGeometry.h
+    Shared/API/c/WKImage.h
+    Shared/API/c/WKMutableArray.h
+    Shared/API/c/WKMutableDictionary.h
+    Shared/API/c/WKNumber.h
+    Shared/API/c/WKPageLoadTypes.h
+    Shared/API/c/WKPageLoadTypesPrivate.h
+    Shared/API/c/WKPageVisibilityTypes.h
+    Shared/API/c/WKPluginInformation.h
+    Shared/API/c/WKSecurityOriginRef.h
+    Shared/API/c/WKSerializedScriptValue.h
+    Shared/API/c/WKString.h
+    Shared/API/c/WKStringPrivate.h
+    Shared/API/c/WKType.h
+    Shared/API/c/WKURL.h
+    Shared/API/c/WKURLRequest.h
+    Shared/API/c/WKURLResponse.h
+    Shared/API/c/WKUserContentInjectedFrames.h
+    Shared/API/c/WKUserScriptInjectionTime.h
+
+    UIProcess/API/C/WKAuthenticationChallenge.h
+    UIProcess/API/C/WKAuthenticationDecisionListener.h
+    UIProcess/API/C/WKBackForwardListItemRef.h
+    UIProcess/API/C/WKBackForwardListRef.h
+    UIProcess/API/C/WKContext.h
+    UIProcess/API/C/WKContextConfigurationRef.h
+    UIProcess/API/C/WKContextConnectionClient.h
+    UIProcess/API/C/WKContextDownloadClient.h
+    UIProcess/API/C/WKContextHistoryClient.h
+    UIProcess/API/C/WKContextInjectedBundleClient.h
+    UIProcess/API/C/WKContextPrivate.h
+    UIProcess/API/C/WKCookieManager.h
+    UIProcess/API/C/WKCredential.h
+    UIProcess/API/C/WKCredentialTypes.h
+    UIProcess/API/C/WKDownload.h
+    UIProcess/API/C/WKFormSubmissionListener.h
+    UIProcess/API/C/WKFrame.h
+    UIProcess/API/C/WKFrameHandleRef.h
+    UIProcess/API/C/WKFrameInfoRef.h
+    UIProcess/API/C/WKFramePolicyListener.h
+    UIProcess/API/C/WKGeolocationManager.h
+    UIProcess/API/C/WKGeolocationPermissionRequest.h
+    UIProcess/API/C/WKGeolocationPosition.h
+    UIProcess/API/C/WKHTTPCookieStoreRef.h
+    UIProcess/API/C/WKHitTestResult.h
+    UIProcess/API/C/WKIconDatabase.h
+    UIProcess/API/C/WKInspector.h
+    UIProcess/API/C/WKLayoutMode.h
+    UIProcess/API/C/WKMessageListener.h
+    UIProcess/API/C/WKMockDisplay.h
+    UIProcess/API/C/WKMockMediaDevice.h
+    UIProcess/API/C/WKNativeEvent.h
+    UIProcess/API/C/WKNavigationActionRef.h
+    UIProcess/API/C/WKNavigationDataRef.h
+    UIProcess/API/C/WKNavigationRef.h
+    UIProcess/API/C/WKNavigationResponseRef.h
+    UIProcess/API/C/WKNotification.h
+    UIProcess/API/C/WKNotificationManager.h
+    UIProcess/API/C/WKNotificationPermissionRequest.h
+    UIProcess/API/C/WKNotificationProvider.h
+    UIProcess/API/C/WKOpenPanelParametersRef.h
+    UIProcess/API/C/WKOpenPanelResultListener.h
+    UIProcess/API/C/WKPage.h
+    UIProcess/API/C/WKPageConfigurationRef.h
+    UIProcess/API/C/WKPageContextMenuClient.h
+    UIProcess/API/C/WKPageDiagnosticLoggingClient.h
+    UIProcess/API/C/WKPageFindClient.h
+    UIProcess/API/C/WKPageFindMatchesClient.h
+    UIProcess/API/C/WKPageFormClient.h
+    UIProcess/API/C/WKPageGroup.h
+    UIProcess/API/C/WKPageInjectedBundleClient.h
+    UIProcess/API/C/WKPageLoaderClient.h
+    UIProcess/API/C/WKPageNavigationClient.h
+    UIProcess/API/C/WKPagePolicyClient.h
+    UIProcess/API/C/WKPagePrivate.h
+    UIProcess/API/C/WKPageRenderingProgressEvents.h
+    UIProcess/API/C/WKPageStateClient.h
+    UIProcess/API/C/WKPageUIClient.h
+    UIProcess/API/C/WKPluginLoadPolicy.h
+    UIProcess/API/C/WKPreferencesRef.h
+    UIProcess/API/C/WKPreferencesRefPrivate.h
+    UIProcess/API/C/WKProcessTerminationReason.h
+    UIProcess/API/C/WKProtectionSpace.h
+    UIProcess/API/C/WKProtectionSpaceTypes.h
+    UIProcess/API/C/WKResourceCacheManager.h
+    UIProcess/API/C/WKSessionStateRef.h
+    UIProcess/API/C/WKTestingSupport.h
+    UIProcess/API/C/WKTextChecker.h
+    UIProcess/API/C/WKUserContentControllerRef.h
+    UIProcess/API/C/WKUserContentExtensionStoreRef.h
+    UIProcess/API/C/WKUserMediaPermissionCheck.h
+    UIProcess/API/C/WKUserMediaPermissionRequest.h
+    UIProcess/API/C/WKUserScriptRef.h
+    UIProcess/API/C/WKViewportAttributes.h
+    UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h
+    UIProcess/API/C/WKWebsiteDataStoreRef.h
+    UIProcess/API/C/WKWebsitePolicies.h
+    UIProcess/API/C/WKWindowFeaturesRef.h
+    UIProcess/API/C/WebKit2_C.h
+
+    UIProcess/API/cpp/WKRetainPtr.h
+
+    WebProcess/InjectedBundle/API/c/WKBundle.h
+    WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
+    WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h
+    WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h
+    WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.h
+    WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h
+    WebProcess/InjectedBundle/API/c/WKBundleFrame.h
+    WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h
+    WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h
+    WebProcess/InjectedBundle/API/c/WKBundleInitialize.h
+    WebProcess/InjectedBundle/API/c/WKBundleInspector.h
+    WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.h
+    WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h
+    WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h
+    WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h
+    WebProcess/InjectedBundle/API/c/WKBundlePage.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageGroup.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h
+    WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h
+    WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
+    WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h
+    WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h
+)
diff --git a/Source/WebKit/PlatformFTW.cmake b/Source/WebKit/PlatformFTW.cmake
index 9f49ffd..ce03bde 100644
--- a/Source/WebKit/PlatformFTW.cmake
+++ b/Source/WebKit/PlatformFTW.cmake
@@ -1,8 +1,10 @@
 set(WebKit_OUTPUT_NAME WebKit2)
-set(WebKit_WebProcess_OUTPUT_NAME WebKitWebProcess)
-set(WebKit_NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
-set(WebKit_PluginProcess_OUTPUT_NAME WebKitPluginProcess)
-set(WebKit_GPUProcess_OUTPUT_NAME WebKitGPUProcess)
+set(WebProcess_OUTPUT_NAME WebKitWebProcess)
+set(NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
+set(PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+set(GPUProcess_OUTPUT_NAME WebKitGPUProcess)
+
+include(Headers.cmake)
 
 add_definitions(-DBUILDING_WEBKIT)
 
@@ -141,11 +143,6 @@
     GPUProcess/EntryPoint/win/GPUProcessMain.cpp
 )
 
-if (${ENABLE_PLUGIN_PROCESS})
-    list(APPEND PluginProcess_SOURCES
-    )
-endif ()
-
 add_definitions(-DUSE_DIRECT2D=1 -DUSE_CURL=1)
 
 list(APPEND WebKit_SOURCES
@@ -200,192 +197,16 @@
 
 WEBKIT_WRAP_SOURCELIST(${WebKit_SOURCES})
 
-# Temporarily list out shared headers here
-set(WebKit_PUBLIC_FRAMEWORK_HEADERS
-    Shared/API/c/WKArray.h
-    Shared/API/c/WKBase.h
-    Shared/API/c/WKCertificateInfo.h
-    Shared/API/c/WKConnectionRef.h
-    Shared/API/c/WKContextMenuItem.h
-    Shared/API/c/WKContextMenuItemTypes.h
-    Shared/API/c/WKData.h
-    Shared/API/c/WKDeclarationSpecifiers.h
-    Shared/API/c/WKDeprecated.h
-    Shared/API/c/WKDiagnosticLoggingResultType.h
-    Shared/API/c/WKDictionary.h
-    Shared/API/c/WKErrorRef.h
-    Shared/API/c/WKEvent.h
-    Shared/API/c/WKFindOptions.h
-    Shared/API/c/WKGeometry.h
-    Shared/API/c/WKImage.h
-    Shared/API/c/WKMutableArray.h
-    Shared/API/c/WKMutableDictionary.h
-    Shared/API/c/WKNumber.h
-    Shared/API/c/WKPageLoadTypes.h
-    Shared/API/c/WKPageLoadTypesPrivate.h
-    Shared/API/c/WKPageVisibilityTypes.h
-    Shared/API/c/WKPluginInformation.h
-    Shared/API/c/WKSecurityOriginRef.h
-    Shared/API/c/WKSerializedScriptValue.h
-    Shared/API/c/WKString.h
-    Shared/API/c/WKStringPrivate.h
-    Shared/API/c/WKType.h
-    Shared/API/c/WKURL.h
-    Shared/API/c/WKURLRequest.h
-    Shared/API/c/WKURLResponse.h
-    Shared/API/c/WKUserContentInjectedFrames.h
-    Shared/API/c/WKUserScriptInjectionTime.h
-
-    UIProcess/API/C/WKAuthenticationChallenge.h
-    UIProcess/API/C/WKAuthenticationDecisionListener.h
-    UIProcess/API/C/WKBackForwardListItemRef.h
-    UIProcess/API/C/WKBackForwardListRef.h
-    UIProcess/API/C/WKContext.h
-    UIProcess/API/C/WKContextConfigurationRef.h
-    UIProcess/API/C/WKContextConnectionClient.h
-    UIProcess/API/C/WKContextDownloadClient.h
-    UIProcess/API/C/WKContextHistoryClient.h
-    UIProcess/API/C/WKContextInjectedBundleClient.h
-    UIProcess/API/C/WKContextPrivate.h
-    UIProcess/API/C/WKCookieManager.h
-    UIProcess/API/C/WKCredential.h
-    UIProcess/API/C/WKCredentialTypes.h
-    UIProcess/API/C/WKDownload.h
-    UIProcess/API/C/WKFormSubmissionListener.h
-    UIProcess/API/C/WKFrame.h
-    UIProcess/API/C/WKFrameHandleRef.h
-    UIProcess/API/C/WKFrameInfoRef.h
-    UIProcess/API/C/WKFramePolicyListener.h
-    UIProcess/API/C/WKGeolocationManager.h
-    UIProcess/API/C/WKGeolocationPermissionRequest.h
-    UIProcess/API/C/WKGeolocationPosition.h
-    UIProcess/API/C/WKHTTPCookieStoreRef.h
-    UIProcess/API/C/WKHitTestResult.h
-    UIProcess/API/C/WKIconDatabase.h
-    UIProcess/API/C/WKInspector.h
-    UIProcess/API/C/WKLayoutMode.h
-    UIProcess/API/C/WKMessageListener.h
-    UIProcess/API/C/WKMockDisplay.h
-    UIProcess/API/C/WKMockMediaDevice.h
-    UIProcess/API/C/WKNativeEvent.h
-    UIProcess/API/C/WKNavigationActionRef.h
-    UIProcess/API/C/WKNavigationDataRef.h
-    UIProcess/API/C/WKNavigationRef.h
-    UIProcess/API/C/WKNavigationResponseRef.h
-    UIProcess/API/C/WKNotification.h
-    UIProcess/API/C/WKNotificationManager.h
-    UIProcess/API/C/WKNotificationPermissionRequest.h
-    UIProcess/API/C/WKNotificationProvider.h
-    UIProcess/API/C/WKOpenPanelParametersRef.h
-    UIProcess/API/C/WKOpenPanelResultListener.h
-    UIProcess/API/C/WKPage.h
-    UIProcess/API/C/WKPageConfigurationRef.h
-    UIProcess/API/C/WKPageContextMenuClient.h
-    UIProcess/API/C/WKPageDiagnosticLoggingClient.h
-    UIProcess/API/C/WKPageFindClient.h
-    UIProcess/API/C/WKPageFindMatchesClient.h
-    UIProcess/API/C/WKPageFormClient.h
-    UIProcess/API/C/WKPageGroup.h
-    UIProcess/API/C/WKPageInjectedBundleClient.h
-    UIProcess/API/C/WKPageLoaderClient.h
-    UIProcess/API/C/WKPageNavigationClient.h
-    UIProcess/API/C/WKPagePolicyClient.h
-    UIProcess/API/C/WKPagePrivate.h
-    UIProcess/API/C/WKPageRenderingProgressEvents.h
-    UIProcess/API/C/WKPageStateClient.h
-    UIProcess/API/C/WKPageUIClient.h
-    UIProcess/API/C/WKPluginLoadPolicy.h
-    UIProcess/API/C/WKPreferencesRef.h
-    UIProcess/API/C/WKPreferencesRefPrivate.h
-    UIProcess/API/C/WKProcessTerminationReason.h
-    UIProcess/API/C/WKProtectionSpace.h
-    UIProcess/API/C/WKProtectionSpaceTypes.h
-    UIProcess/API/C/WKResourceCacheManager.h
-    UIProcess/API/C/WKSessionStateRef.h
-    UIProcess/API/C/WKTestingSupport.h
-    UIProcess/API/C/WKTextChecker.h
-    UIProcess/API/C/WKUserContentControllerRef.h
-    UIProcess/API/C/WKUserContentExtensionStoreRef.h
-    UIProcess/API/C/WKUserMediaPermissionCheck.h
-    UIProcess/API/C/WKUserMediaPermissionRequest.h
-    UIProcess/API/C/WKUserScriptRef.h
-    UIProcess/API/C/WKViewportAttributes.h
-    UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h
-    UIProcess/API/C/WKWebsiteDataStoreRef.h
-    UIProcess/API/C/WKWebsitePolicies.h
-    UIProcess/API/C/WKWindowFeaturesRef.h
-    UIProcess/API/C/WebKit2_C.h
-
-    UIProcess/API/cpp/WKRetainPtr.h
-
-    WebProcess/InjectedBundle/API/c/WKBundle.h
-    WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h
-    WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.h
-    WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h
-    WebProcess/InjectedBundle/API/c/WKBundleFrame.h
-    WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h
-    WebProcess/InjectedBundle/API/c/WKBundleInitialize.h
-    WebProcess/InjectedBundle/API/c/WKBundleInspector.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePage.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageGroup.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h
-)
-
 # Windows specific
 list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS
-    Shared/API/c/win/WKBaseWin.h
-
-    UIProcess/API/C/win/WKView.h
-)
-
-set(WebKit_FORWARDING_HEADERS_DIRECTORIES
-    Shared/API/c
-
-    Shared/API/c/cf
-    Shared/API/c/win
-
-    UIProcess/API/C
-    UIProcess/API/cpp
-
-    UIProcess/API/C/win
-
-    WebProcess/InjectedBundle/API/c
-)
-
-list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS
-    #Shared/API/c/cairo/WKImageCairo.h
-
     Shared/API/c/curl/WKCertificateInfoCurl.h
 
+    Shared/API/c/win/WKBaseWin.h
+
     UIProcess/API/C/curl/WKProtectionSpaceCurl.h
     UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.h
-)
 
-WEBKIT_MAKE_FORWARDING_HEADERS(WebKit
-    TARGET_NAME WebKitFrameworkHeaders
-    DESTINATION ${WebKit_FRAMEWORK_HEADERS_DIR}/WebKit
-    FILES ${WebKit_PUBLIC_FRAMEWORK_HEADERS}
-    FLATTENED
+    UIProcess/API/C/win/WKView.h
 )
 
 list(APPEND WebKit_PRIVATE_DEFINITIONS
diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake
index 2caf5fc..4fc6ec0 100644
--- a/Source/WebKit/PlatformGTK.cmake
+++ b/Source/WebKit/PlatformGTK.cmake
@@ -1,10 +1,10 @@
 include(InspectorGResources.cmake)
 
 set(WebKit_OUTPUT_NAME webkit2gtk-${WEBKITGTK_API_VERSION})
-set(WebKit_WebProcess_OUTPUT_NAME WebKitWebProcess)
-set(WebKit_NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
-set(WebKit_GPUProcess_OUTPUT_NAME WebKitGPUProcess)
-set(WebKit_PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+set(WebProcess_OUTPUT_NAME WebKitWebProcess)
+set(NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
+set(GPUProcess_OUTPUT_NAME WebKitGPUProcess)
+set(PluginProcess_OUTPUT_NAME WebKitPluginProcess)
 
 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBKIT2GTK_API_DIR})
 file(MAKE_DIRECTORY ${FORWARDING_HEADERS_WEBKIT2GTK_DIR})
@@ -835,7 +835,7 @@
             ${FORWARDING_HEADERS_WEBKIT2GTK_EXTENSION_DIR}/webkitdom
 )
 
-set(WEBKIT_EXTRA_DEPENDENCIES
+list(APPEND WebKit_DEPENDENCIES
      WebKit-fake-api-headers
      WebKit-forwarding-headers
 )
diff --git a/Source/WebKit/PlatformMac.cmake b/Source/WebKit/PlatformMac.cmake
index 15774bc..cc66c92 100644
--- a/Source/WebKit/PlatformMac.cmake
+++ b/Source/WebKit/PlatformMac.cmake
@@ -143,8 +143,8 @@
 )
 
 # FIXME: These should not have Development in production builds.
-set(WebKit_WebProcess_OUTPUT_NAME com.apple.WebKit.WebContent.Development)
-set(WebKit_NetworkProcess_OUTPUT_NAME com.apple.WebKit.Networking.Development)
+set(WebProcess_OUTPUT_NAME com.apple.WebKit.WebContent.Development)
+set(NetworkProcess_OUTPUT_NAME com.apple.WebKit.Networking.Development)
 
 set(WebProcess_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR})
 set(NetworkProcess_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR})
@@ -532,12 +532,12 @@
     WEBKIT_XPC_SERVICE(WebProcess
         "com.apple.WebKit.WebContent"
         ${WEBKIT_DIR}/WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist
-        ${WebKit_WebProcess_OUTPUT_NAME})
+        ${WebProcess_OUTPUT_NAME})
 
     WEBKIT_XPC_SERVICE(NetworkProcess
         "com.apple.WebKit.Networking"
         ${WEBKIT_DIR}/NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist
-        ${WebKit_NetworkProcess_OUTPUT_NAME})
+        ${NetworkProcess_OUTPUT_NAME})
 
     set(WebKit_RESOURCES_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/WebKit.framework/Versions/A/Resources)
     add_custom_command(OUTPUT ${WebKit_RESOURCES_DIR}/com.apple.WebProcess.sb COMMAND
diff --git a/Source/WebKit/PlatformPlayStation.cmake b/Source/WebKit/PlatformPlayStation.cmake
index 484e413..c6d3cd4 100644
--- a/Source/WebKit/PlatformPlayStation.cmake
+++ b/Source/WebKit/PlatformPlayStation.cmake
@@ -1,8 +1,10 @@
 set(WebKit_OUTPUT_NAME SceWebKit)
-set(WebKit_WebProcess_OUTPUT_NAME WebKitWebProcess)
-set(WebKit_NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
-set(WebKit_GPUProcess_OUTPUT_NAME WebKitGPUProcess)
-set(WebKit_PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+set(WebProcess_OUTPUT_NAME WebKitWebProcess)
+set(NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
+set(GPUProcess_OUTPUT_NAME WebKitGPUProcess)
+set(PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+
+include(Headers.cmake)
 
 add_definitions(-DBUILDING_WEBKIT)
 
@@ -141,157 +143,6 @@
     "${WEBKIT_DIR}/WebProcess/WebPage/libwpe"
 )
 
-# Temporarily list out shared headers here
-set(WebKit_PUBLIC_FRAMEWORK_HEADERS
-    Shared/API/c/WKArray.h
-    Shared/API/c/WKBase.h
-    Shared/API/c/WKCertificateInfo.h
-    Shared/API/c/WKConnectionRef.h
-    Shared/API/c/WKContextMenuItem.h
-    Shared/API/c/WKContextMenuItemTypes.h
-    Shared/API/c/WKData.h
-    Shared/API/c/WKDeclarationSpecifiers.h
-    Shared/API/c/WKDeprecated.h
-    Shared/API/c/WKDiagnosticLoggingResultType.h
-    Shared/API/c/WKDictionary.h
-    Shared/API/c/WKErrorRef.h
-    Shared/API/c/WKEvent.h
-    Shared/API/c/WKFindOptions.h
-    Shared/API/c/WKGeometry.h
-    Shared/API/c/WKImage.h
-    Shared/API/c/WKMutableArray.h
-    Shared/API/c/WKMutableDictionary.h
-    Shared/API/c/WKNumber.h
-    Shared/API/c/WKPageLoadTypes.h
-    Shared/API/c/WKPageLoadTypesPrivate.h
-    Shared/API/c/WKPageVisibilityTypes.h
-    Shared/API/c/WKPluginInformation.h
-    Shared/API/c/WKSecurityOriginRef.h
-    Shared/API/c/WKSerializedScriptValue.h
-    Shared/API/c/WKString.h
-    Shared/API/c/WKStringPrivate.h
-    Shared/API/c/WKType.h
-    Shared/API/c/WKURL.h
-    Shared/API/c/WKURLRequest.h
-    Shared/API/c/WKURLResponse.h
-    Shared/API/c/WKUserContentInjectedFrames.h
-    Shared/API/c/WKUserScriptInjectionTime.h
-
-    UIProcess/API/C/WKAuthenticationChallenge.h
-    UIProcess/API/C/WKAuthenticationDecisionListener.h
-    UIProcess/API/C/WKBackForwardListItemRef.h
-    UIProcess/API/C/WKBackForwardListRef.h
-    UIProcess/API/C/WKContext.h
-    UIProcess/API/C/WKContextConfigurationRef.h
-    UIProcess/API/C/WKContextConnectionClient.h
-    UIProcess/API/C/WKContextDownloadClient.h
-    UIProcess/API/C/WKContextHistoryClient.h
-    UIProcess/API/C/WKContextInjectedBundleClient.h
-    UIProcess/API/C/WKContextPrivate.h
-    UIProcess/API/C/WKCookieManager.h
-    UIProcess/API/C/WKCredential.h
-    UIProcess/API/C/WKCredentialTypes.h
-    UIProcess/API/C/WKDownload.h
-    UIProcess/API/C/WKFormSubmissionListener.h
-    UIProcess/API/C/WKFrame.h
-    UIProcess/API/C/WKFrameHandleRef.h
-    UIProcess/API/C/WKFrameInfoRef.h
-    UIProcess/API/C/WKFramePolicyListener.h
-    UIProcess/API/C/WKGeolocationManager.h
-    UIProcess/API/C/WKGeolocationPermissionRequest.h
-    UIProcess/API/C/WKGeolocationPosition.h
-    UIProcess/API/C/WKHTTPCookieStoreRef.h
-    UIProcess/API/C/WKHitTestResult.h
-    UIProcess/API/C/WKIconDatabase.h
-    UIProcess/API/C/WKInspector.h
-    UIProcess/API/C/WKLayoutMode.h
-    UIProcess/API/C/WKMessageListener.h
-    UIProcess/API/C/WKMockDisplay.h
-    UIProcess/API/C/WKMockMediaDevice.h
-    UIProcess/API/C/WKNativeEvent.h
-    UIProcess/API/C/WKNavigationActionRef.h
-    UIProcess/API/C/WKNavigationDataRef.h
-    UIProcess/API/C/WKNavigationRef.h
-    UIProcess/API/C/WKNavigationResponseRef.h
-    UIProcess/API/C/WKNotification.h
-    UIProcess/API/C/WKNotificationManager.h
-    UIProcess/API/C/WKNotificationPermissionRequest.h
-    UIProcess/API/C/WKNotificationProvider.h
-    UIProcess/API/C/WKOpenPanelParametersRef.h
-    UIProcess/API/C/WKOpenPanelResultListener.h
-    UIProcess/API/C/WKPage.h
-    UIProcess/API/C/WKPageConfigurationRef.h
-    UIProcess/API/C/WKPageContextMenuClient.h
-    UIProcess/API/C/WKPageDiagnosticLoggingClient.h
-    UIProcess/API/C/WKPageFindClient.h
-    UIProcess/API/C/WKPageFindMatchesClient.h
-    UIProcess/API/C/WKPageFormClient.h
-    UIProcess/API/C/WKPageGroup.h
-    UIProcess/API/C/WKPageInjectedBundleClient.h
-    UIProcess/API/C/WKPageLoaderClient.h
-    UIProcess/API/C/WKPageNavigationClient.h
-    UIProcess/API/C/WKPagePolicyClient.h
-    UIProcess/API/C/WKPagePrivate.h
-    UIProcess/API/C/WKPageRenderingProgressEvents.h
-    UIProcess/API/C/WKPageStateClient.h
-    UIProcess/API/C/WKPageUIClient.h
-    UIProcess/API/C/WKPluginLoadPolicy.h
-    UIProcess/API/C/WKPreferencesRef.h
-    UIProcess/API/C/WKPreferencesRefPrivate.h
-    UIProcess/API/C/WKProcessTerminationReason.h
-    UIProcess/API/C/WKProtectionSpace.h
-    UIProcess/API/C/WKProtectionSpaceTypes.h
-    UIProcess/API/C/WKResourceCacheManager.h
-    UIProcess/API/C/WKSessionStateRef.h
-    UIProcess/API/C/WKTestingSupport.h
-    UIProcess/API/C/WKTextChecker.h
-    UIProcess/API/C/WKUserContentControllerRef.h
-    UIProcess/API/C/WKUserContentExtensionStoreRef.h
-    UIProcess/API/C/WKUserMediaPermissionCheck.h
-    UIProcess/API/C/WKUserMediaPermissionRequest.h
-    UIProcess/API/C/WKUserScriptRef.h
-    UIProcess/API/C/WKViewportAttributes.h
-    UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h
-    UIProcess/API/C/WKWebsiteDataStoreRef.h
-    UIProcess/API/C/WKWebsitePolicies.h
-    UIProcess/API/C/WKWindowFeaturesRef.h
-    UIProcess/API/C/WebKit2_C.h
-
-    UIProcess/API/cpp/WKRetainPtr.h
-
-    WebProcess/InjectedBundle/API/c/WKBundle.h
-    WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h
-    WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.h
-    WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h
-    WebProcess/InjectedBundle/API/c/WKBundleFrame.h
-    WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h
-    WebProcess/InjectedBundle/API/c/WKBundleInitialize.h
-    WebProcess/InjectedBundle/API/c/WKBundleInspector.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePage.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageGroup.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h
-)
-
 # PlayStation specific
 list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS
     Shared/API/c/cairo/WKImageCairo.h
@@ -312,10 +163,3 @@
 list(APPEND WebKit_PRIVATE_LIBRARIES
     $<TARGET_OBJECTS:PAL>
 )
-
-WEBKIT_MAKE_FORWARDING_HEADERS(WebKit
-    TARGET_NAME WebKitFrameworkHeaders
-    DESTINATION ${WebKit_FRAMEWORK_HEADERS_DIR}/WebKit
-    FILES ${WebKit_PUBLIC_FRAMEWORK_HEADERS}
-    FLATTENED
-)
diff --git a/Source/WebKit/PlatformWPE.cmake b/Source/WebKit/PlatformWPE.cmake
index 66dec64..1ad03e9 100644
--- a/Source/WebKit/PlatformWPE.cmake
+++ b/Source/WebKit/PlatformWPE.cmake
@@ -2,9 +2,9 @@
 include(GNUInstallDirs)
 
 set(WebKit_OUTPUT_NAME WPEWebKit-${WPE_API_VERSION})
-set(WebKit_WebProcess_OUTPUT_NAME WPEWebProcess)
-set(WebKit_NetworkProcess_OUTPUT_NAME WPENetworkProcess)
-set(WebKit_GPUProcess_OUTPUT_NAME WPEGPUProcess)
+set(WebProcess_OUTPUT_NAME WPEWebProcess)
+set(NetworkProcess_OUTPUT_NAME WPENetworkProcess)
+set(GPUProcess_OUTPUT_NAME WPEGPUProcess)
 
 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WPE_API_DIR})
 file(MAKE_DIRECTORY ${FORWARDING_HEADERS_WPE_DIR})
@@ -59,7 +59,7 @@
             ${FORWARDING_HEADERS_WPE_DOM_DIR}/wpe
 )
 
-set(WEBKIT_EXTRA_DEPENDENCIES
+list(APPEND WebKit_DEPENDENCIES
     webkitwpe-fake-api-headers
     webkitwpe-forwarding-headers
 )
diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake
index 5abc667..fe60361 100644
--- a/Source/WebKit/PlatformWin.cmake
+++ b/Source/WebKit/PlatformWin.cmake
@@ -1,8 +1,10 @@
 set(WebKit_OUTPUT_NAME WebKit2)
-set(WebKit_WebProcess_OUTPUT_NAME WebKitWebProcess)
-set(WebKit_NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
-set(WebKit_GPUProcess_OUTPUT_NAME WebKitGPUProcess)
-set(WebKit_PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+set(WebProcess_OUTPUT_NAME WebKitWebProcess)
+set(NetworkProcess_OUTPUT_NAME WebKitNetworkProcess)
+set(GPUProcess_OUTPUT_NAME WebKitGPUProcess)
+set(PluginProcess_OUTPUT_NAME WebKitPluginProcess)
+
+include(Headers.cmake)
 
 add_definitions(-DBUILDING_WEBKIT)
 
@@ -97,6 +99,7 @@
 
 list(APPEND WebKit_INCLUDE_DIRECTORIES
     "${WEBKIT_DIR}/Platform/classifier"
+    "${WEBKIT_DIR}/Platform/generic"
     "${WEBKIT_DIR}/PluginProcess/win"
     "${WEBKIT_DIR}/Shared/API/c/win"
     "${WEBKIT_DIR}/Shared/CoordinatedGraphics"
@@ -137,11 +140,6 @@
     GPUProcess/EntryPoint/win/GPUProcessMain.cpp
 )
 
-if (${ENABLE_PLUGIN_PROCESS})
-    list(APPEND PluginProcess_SOURCES
-    )
-endif ()
-
 if (${WTF_PLATFORM_WIN_CAIRO})
     add_definitions(-DUSE_CAIRO=1 -DUSE_CURL=1)
 
@@ -196,157 +194,6 @@
 
 WEBKIT_WRAP_SOURCELIST(${WebKit_SOURCES})
 
-# Temporarily list out shared headers here
-set(WebKit_PUBLIC_FRAMEWORK_HEADERS
-    Shared/API/c/WKArray.h
-    Shared/API/c/WKBase.h
-    Shared/API/c/WKCertificateInfo.h
-    Shared/API/c/WKConnectionRef.h
-    Shared/API/c/WKContextMenuItem.h
-    Shared/API/c/WKContextMenuItemTypes.h
-    Shared/API/c/WKData.h
-    Shared/API/c/WKDeclarationSpecifiers.h
-    Shared/API/c/WKDeprecated.h
-    Shared/API/c/WKDiagnosticLoggingResultType.h
-    Shared/API/c/WKDictionary.h
-    Shared/API/c/WKErrorRef.h
-    Shared/API/c/WKEvent.h
-    Shared/API/c/WKFindOptions.h
-    Shared/API/c/WKGeometry.h
-    Shared/API/c/WKImage.h
-    Shared/API/c/WKMutableArray.h
-    Shared/API/c/WKMutableDictionary.h
-    Shared/API/c/WKNumber.h
-    Shared/API/c/WKPageLoadTypes.h
-    Shared/API/c/WKPageLoadTypesPrivate.h
-    Shared/API/c/WKPageVisibilityTypes.h
-    Shared/API/c/WKPluginInformation.h
-    Shared/API/c/WKSecurityOriginRef.h
-    Shared/API/c/WKSerializedScriptValue.h
-    Shared/API/c/WKString.h
-    Shared/API/c/WKStringPrivate.h
-    Shared/API/c/WKType.h
-    Shared/API/c/WKURL.h
-    Shared/API/c/WKURLRequest.h
-    Shared/API/c/WKURLResponse.h
-    Shared/API/c/WKUserContentInjectedFrames.h
-    Shared/API/c/WKUserScriptInjectionTime.h
-
-    UIProcess/API/C/WKAuthenticationChallenge.h
-    UIProcess/API/C/WKAuthenticationDecisionListener.h
-    UIProcess/API/C/WKBackForwardListItemRef.h
-    UIProcess/API/C/WKBackForwardListRef.h
-    UIProcess/API/C/WKContext.h
-    UIProcess/API/C/WKContextConfigurationRef.h
-    UIProcess/API/C/WKContextConnectionClient.h
-    UIProcess/API/C/WKContextDownloadClient.h
-    UIProcess/API/C/WKContextHistoryClient.h
-    UIProcess/API/C/WKContextInjectedBundleClient.h
-    UIProcess/API/C/WKContextPrivate.h
-    UIProcess/API/C/WKCookieManager.h
-    UIProcess/API/C/WKCredential.h
-    UIProcess/API/C/WKCredentialTypes.h
-    UIProcess/API/C/WKDownload.h
-    UIProcess/API/C/WKFormSubmissionListener.h
-    UIProcess/API/C/WKFrame.h
-    UIProcess/API/C/WKFrameHandleRef.h
-    UIProcess/API/C/WKFrameInfoRef.h
-    UIProcess/API/C/WKFramePolicyListener.h
-    UIProcess/API/C/WKGeolocationManager.h
-    UIProcess/API/C/WKGeolocationPermissionRequest.h
-    UIProcess/API/C/WKGeolocationPosition.h
-    UIProcess/API/C/WKHTTPCookieStoreRef.h
-    UIProcess/API/C/WKHitTestResult.h
-    UIProcess/API/C/WKIconDatabase.h
-    UIProcess/API/C/WKInspector.h
-    UIProcess/API/C/WKLayoutMode.h
-    UIProcess/API/C/WKMessageListener.h
-    UIProcess/API/C/WKMockDisplay.h
-    UIProcess/API/C/WKMockMediaDevice.h
-    UIProcess/API/C/WKNativeEvent.h
-    UIProcess/API/C/WKNavigationActionRef.h
-    UIProcess/API/C/WKNavigationDataRef.h
-    UIProcess/API/C/WKNavigationRef.h
-    UIProcess/API/C/WKNavigationResponseRef.h
-    UIProcess/API/C/WKNotification.h
-    UIProcess/API/C/WKNotificationManager.h
-    UIProcess/API/C/WKNotificationPermissionRequest.h
-    UIProcess/API/C/WKNotificationProvider.h
-    UIProcess/API/C/WKOpenPanelParametersRef.h
-    UIProcess/API/C/WKOpenPanelResultListener.h
-    UIProcess/API/C/WKPage.h
-    UIProcess/API/C/WKPageConfigurationRef.h
-    UIProcess/API/C/WKPageContextMenuClient.h
-    UIProcess/API/C/WKPageDiagnosticLoggingClient.h
-    UIProcess/API/C/WKPageFindClient.h
-    UIProcess/API/C/WKPageFindMatchesClient.h
-    UIProcess/API/C/WKPageFormClient.h
-    UIProcess/API/C/WKPageGroup.h
-    UIProcess/API/C/WKPageInjectedBundleClient.h
-    UIProcess/API/C/WKPageLoaderClient.h
-    UIProcess/API/C/WKPageNavigationClient.h
-    UIProcess/API/C/WKPagePolicyClient.h
-    UIProcess/API/C/WKPagePrivate.h
-    UIProcess/API/C/WKPageRenderingProgressEvents.h
-    UIProcess/API/C/WKPageStateClient.h
-    UIProcess/API/C/WKPageUIClient.h
-    UIProcess/API/C/WKPluginLoadPolicy.h
-    UIProcess/API/C/WKPreferencesRef.h
-    UIProcess/API/C/WKPreferencesRefPrivate.h
-    UIProcess/API/C/WKProcessTerminationReason.h
-    UIProcess/API/C/WKProtectionSpace.h
-    UIProcess/API/C/WKProtectionSpaceTypes.h
-    UIProcess/API/C/WKResourceCacheManager.h
-    UIProcess/API/C/WKSessionStateRef.h
-    UIProcess/API/C/WKTestingSupport.h
-    UIProcess/API/C/WKTextChecker.h
-    UIProcess/API/C/WKUserContentControllerRef.h
-    UIProcess/API/C/WKUserContentExtensionStoreRef.h
-    UIProcess/API/C/WKUserMediaPermissionCheck.h
-    UIProcess/API/C/WKUserMediaPermissionRequest.h
-    UIProcess/API/C/WKUserScriptRef.h
-    UIProcess/API/C/WKViewportAttributes.h
-    UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h
-    UIProcess/API/C/WKWebsiteDataStoreRef.h
-    UIProcess/API/C/WKWebsitePolicies.h
-    UIProcess/API/C/WKWindowFeaturesRef.h
-    UIProcess/API/C/WebKit2_C.h
-
-    UIProcess/API/cpp/WKRetainPtr.h
-
-    WebProcess/InjectedBundle/API/c/WKBundle.h
-    WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h
-    WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h
-    WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.h
-    WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h
-    WebProcess/InjectedBundle/API/c/WKBundleFrame.h
-    WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h
-    WebProcess/InjectedBundle/API/c/WKBundleInitialize.h
-    WebProcess/InjectedBundle/API/c/WKBundleInspector.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.h
-    WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePage.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageGroup.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h
-    WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
-    WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h
-    WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h
-)
-
 # Windows specific
 list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS
     Shared/API/c/win/WKBaseWin.h
@@ -354,21 +201,6 @@
     UIProcess/API/C/win/WKView.h
 )
 
-set(WebKit_FORWARDING_HEADERS_DIRECTORIES
-    Shared/API/c
-
-    Shared/API/c/cairo
-    Shared/API/c/cf
-    Shared/API/c/win
-
-    UIProcess/API/C
-    UIProcess/API/cpp
-
-    UIProcess/API/C/win
-
-    WebProcess/InjectedBundle/API/c
-)
-
 if (${WTF_PLATFORM_WIN_CAIRO})
     list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS
         Shared/API/c/cairo/WKImageCairo.h
@@ -380,13 +212,6 @@
     )
 endif ()
 
-WEBKIT_MAKE_FORWARDING_HEADERS(WebKit
-    TARGET_NAME WebKitFrameworkHeaders
-    DESTINATION ${WebKit_FRAMEWORK_HEADERS_DIR}/WebKit
-    FILES ${WebKit_PUBLIC_FRAMEWORK_HEADERS}
-    FLATTENED
-)
-
 list(APPEND WebKit_PRIVATE_DEFINITIONS
     STATICALLY_LINKED_WITH_PAL
     STATICALLY_LINKED_WITH_WebCore
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index 4f40346..8debce9 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -197,7 +197,7 @@
     SET_AND_EXPOSE_TO_BUILD(XP_UNIX 1)
 endif ()
 
-set(ENABLE_PLUGIN_PROCESS ${ENABLE_NETSCAPE_PLUGIN_API})
+SET_AND_EXPOSE_TO_BUILD(ENABLE_PLUGIN_PROCESS ${ENABLE_NETSCAPE_PLUGIN_API})
 
 add_definitions(-DBUILDING_GTK__=1)
 add_definitions(-DGETTEXT_PACKAGE="WebKit2GTK-${WEBKITGTK_API_VERSION}")
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 3c0e092..a5e1862 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,24 @@
+2020-04-05  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WebKit::WebKit target
+        https://bugs.webkit.org/show_bug.cgi?id=210033
+
+        Reviewed by Fujii Hironori.
+
+        Use the WebKit::WebKit target for MiniBrowser and TestWebKit. This removes
+        the need to have WebProcess and NetworkProcess as dependencies since they are
+        attached to the WebKit::WebKit target.
+
+        Remove references to WebKitFrameworkHeaders as it is now WebKit_CopyHeaders.
+        It is also a dependency of WebKit::WebKit so it does not need to be listed
+        as a dependency.
+
+        * MiniBrowser/win/CMakeLists.txt:
+        * TestWebKitAPI/CMakeLists.txt:
+        * TestWebKitAPI/PlatformPlayStation.cmake:
+        * TestWebKitAPI/PlatformWin.cmake:
+        * WebKitTestRunner/CMakeLists.txt:
+
 2020-04-05  Daniel Bates  <dabates@apple.com>
 
         RequestTextInputContext.Simple iframe sub-tests may sometimes fail
diff --git a/Tools/MiniBrowser/win/CMakeLists.txt b/Tools/MiniBrowser/win/CMakeLists.txt
index 7fbd2ff..a584363 100644
--- a/Tools/MiniBrowser/win/CMakeLists.txt
+++ b/Tools/MiniBrowser/win/CMakeLists.txt
@@ -56,7 +56,7 @@
         WebKitBrowserWindow.cpp
     )
     list(APPEND MiniBrowser_LIBRARIES
-        WebKit
+        WebKit::WebKit
     )
 endif ()
 
diff --git a/Tools/TestWebKitAPI/CMakeLists.txt b/Tools/TestWebKitAPI/CMakeLists.txt
index 0e4bda3..a96707c 100644
--- a/Tools/TestWebKitAPI/CMakeLists.txt
+++ b/Tools/TestWebKitAPI/CMakeLists.txt
@@ -268,14 +268,12 @@
 
     set(TestWebKit_LIBRARIES
         TestWebKitAPIBase
-        WebKit
+        WebKit::WebKit
         gtest
     )
 
     set(TestWebKit_DEPENDENCIES
-        NetworkProcess
         TestWebKitAPIInjectedBundle
-        WebProcess
     )
 
     add_library(TestWebKitAPIBase STATIC
@@ -286,7 +284,7 @@
     )
     target_compile_definitions(TestWebKitAPIBase PRIVATE BUILDING_TestWebKit)
     target_include_directories(TestWebKitAPIBase PRIVATE ${TestWebKit_PRIVATE_INCLUDE_DIRECTORIES})
-    target_link_libraries(TestWebKitAPIBase PRIVATE WebKit gtest)
+    target_link_libraries(TestWebKitAPIBase PRIVATE WebKit::WebKit gtest)
 
     if (COMPILER_IS_GCC_OR_CLANG)
         WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebKitAPIBase -Wno-dangling-else
@@ -338,7 +336,7 @@
 
     target_compile_definitions(TestWebKitAPIInjectedBundle PRIVATE BUILDING_TestWebKit)
     target_include_directories(TestWebKitAPIInjectedBundle PRIVATE ${TestWebKit_PRIVATE_INCLUDE_DIRECTORIES})
-    target_link_libraries(TestWebKitAPIInjectedBundle PRIVATE WebKit WTF)
+    target_link_libraries(TestWebKitAPIInjectedBundle PRIVATE WebKit::WebKit WTF)
 
     if (COMPILER_IS_GCC_OR_CLANG)
         WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebKitAPIInjectedBundle -Wno-dangling-else
diff --git a/Tools/TestWebKitAPI/PlatformPlayStation.cmake b/Tools/TestWebKitAPI/PlatformPlayStation.cmake
index 1fb5fee..add7ade 100644
--- a/Tools/TestWebKitAPI/PlatformPlayStation.cmake
+++ b/Tools/TestWebKitAPI/PlatformPlayStation.cmake
@@ -31,9 +31,6 @@
 
 # TestWebKit
 if (ENABLE_WEBKIT)
-    add_dependencies(TestWebKitAPIBase WebKitFrameworkHeaders)
-    add_dependencies(TestWebKitAPIInjectedBundle WebKitFrameworkHeaders)
-
     target_sources(TestWebKitAPIInjectedBundle PRIVATE
         generic/UtilitiesGeneric.cpp
 
@@ -50,8 +47,4 @@
         playstation/PlatformUtilitiesPlayStation.cpp
         playstation/PlatformWebViewPlayStation.cpp
     )
-
-    list(APPEND TestWebKit_DEPENDENCIES
-        WebKitFrameworkHeaders
-    )
 endif ()
diff --git a/Tools/TestWebKitAPI/PlatformWin.cmake b/Tools/TestWebKitAPI/PlatformWin.cmake
index cae0f0b..6dd7042 100644
--- a/Tools/TestWebKitAPI/PlatformWin.cmake
+++ b/Tools/TestWebKitAPI/PlatformWin.cmake
@@ -124,9 +124,6 @@
 
 # TestWebKit
 if (ENABLE_WEBKIT)
-    add_dependencies(TestWebKitAPIBase WebKitFrameworkHeaders)
-    add_dependencies(TestWebKitAPIInjectedBundle WebKitFrameworkHeaders)
-
     target_sources(TestWebKitAPIInjectedBundle PRIVATE
         win/PlatformUtilitiesWin.cpp
         win/UtilitiesWin.cpp
@@ -148,10 +145,6 @@
 
     list(APPEND TestWebKit_DEFINITIONS ${webcore_DEFINITIONS})
 
-    list(APPEND TestWebKit_DEPENDENCIES
-        WebKitFrameworkHeaders
-    )
-
     WEBKIT_WRAP_EXECUTABLE(TestWebKit
         SOURCES ${TOOLS_DIR}/win/DLLLauncher/DLLLauncherMain.cpp
         LIBRARIES shlwapi
diff --git a/Tools/WebKitTestRunner/CMakeLists.txt b/Tools/WebKitTestRunner/CMakeLists.txt
index b2335b2..55e985a 100644
--- a/Tools/WebKitTestRunner/CMakeLists.txt
+++ b/Tools/WebKitTestRunner/CMakeLists.txt
@@ -23,9 +23,9 @@
 )
 
 set(WebKitTestRunner_LIBRARIES
-    WebKit::JavaScriptCore
     WebCoreTestSupport
-    WebKit
+    WebKit::JavaScriptCore
+    WebKit::WebKit
 )
 
 set(WebKitTestRunner_INCLUDE_DIRECTORIES