diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3e8a23..e79f412 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,13 +2,13 @@
 # Determine CMake version and build type.
 # -----------------------------------------------------------------------------
 #
-# NOTE: cmake_minimum_required() and project() *MUST* be the two fist commands
+# NOTE: cmake_minimum_required() and project() *MUST* be the two first commands
 # used, see https://cmake.org/cmake/help/v3.3/command/project.html -- the
 # latter in particular handles loading a bunch of shared CMake definitions
 # and loading the cross-compilation settings from CMAKE_TOOLCHAIN_FILE.
 #
 
-cmake_minimum_required(VERSION 3.3)
+cmake_minimum_required(VERSION 3.7)
 
 project(WebKit)
 
diff --git a/ChangeLog b/ChangeLog
index 0d5cfe4..05f1e22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Update CMake minimum required to 3.7. 3.7 has a FindICU module so the WebKit one
+        is removed. For non-Apple ports this just requires adding individual components of
+        ICU to find_package(ICU). For Apple ports the module does not work so the targets
+        created in FindICU are mirrored in target/icu.cmake.
+
+        * CMakeLists.txt:
+        * Source/cmake/FindICU.cmake: Removed.
+        * Source/cmake/OptionsAppleWin.cmake:
+        * Source/cmake/OptionsGTK.cmake:
+        * Source/cmake/OptionsJSCOnly.cmake:
+        * Source/cmake/OptionsMac.cmake:
+        * Source/cmake/OptionsPlayStation.cmake:
+        * Source/cmake/OptionsWPE.cmake:
+        * Source/cmake/OptionsWin.cmake:
+        * Source/cmake/OptionsWinCairo.cmake:
+        * Source/cmake/target/icu.cmake: Added.
+
 2019-05-09  Xan López  <xan@igalia.com>
 
         [CMake] Detect SSE2 at compile time
diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
index 5d6d170..e716c71 100644
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -54,10 +54,6 @@
     list(APPEND JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/capstone/Source/include")
 endif ()
 
-set(JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
-    "${ICU_INCLUDE_DIRS}"
-)
-
 set(JavaScriptCore_OBJECT_LUT_SOURCES
     runtime/ArrayConstructor.cpp
     runtime/AsyncFromSyncIteratorPrototype.cpp
@@ -121,7 +117,6 @@
 
 set(JavaScriptCore_LIBRARIES
     WTF${DEBUG_SUFFIX}
-    ${ICU_I18N_LIBRARIES}
 )
 
 if (USE_CAPSTONE)
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 82d5cfe..5511733 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * CMakeLists.txt:
+        * PlatformWin.cmake:
+
 2019-05-17  Keith Rollin  <krollin@apple.com>
 
         Re-enable generate-xcfilelists
diff --git a/Source/JavaScriptCore/PlatformWin.cmake b/Source/JavaScriptCore/PlatformWin.cmake
index 425b97e..c7d0ef5 100644
--- a/Source/JavaScriptCore/PlatformWin.cmake
+++ b/Source/JavaScriptCore/PlatformWin.cmake
@@ -27,7 +27,6 @@
 
 if (NOT WTF_PLATFORM_WIN_CAIRO)
     list(APPEND JavaScriptCore_LIBRARIES
-        ${ICU_LIBRARIES}
         winmm
     )
 endif ()
diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog
index 492d7b0..e63fa88 100644
--- a/Source/WTF/ChangeLog
+++ b/Source/WTF/ChangeLog
@@ -1,3 +1,16 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. Use ICU:: targets which end
+        up propagating to all consumers of WTF.
+
+        * wtf/CMakeLists.txt:
+        * wtf/PlatformPlayStation.cmake:
+
 2019-05-17  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r245418.
diff --git a/Source/WTF/wtf/CMakeLists.txt b/Source/WTF/wtf/CMakeLists.txt
index 6d64080..07f501a 100644
--- a/Source/WTF/wtf/CMakeLists.txt
+++ b/Source/WTF/wtf/CMakeLists.txt
@@ -491,13 +491,11 @@
 
     unicode/icu/CollatorICU.cpp
 )
-set(WTF_SYSTEM_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
-)
+
 list(APPEND WTF_LIBRARIES
-    ${ICU_DATA_LIBRARIES}
-    ${ICU_I18N_LIBRARIES}
-    ${ICU_LIBRARIES}
+    ICU::data
+    ICU::i18n
+    ICU::uc
 )
 
 WEBKIT_FRAMEWORK_DECLARE(WTF)
diff --git a/Source/WTF/wtf/PlatformPlayStation.cmake b/Source/WTF/wtf/PlatformPlayStation.cmake
index 1a524b1..932b2a3 100644
--- a/Source/WTF/wtf/PlatformPlayStation.cmake
+++ b/Source/WTF/wtf/PlatformPlayStation.cmake
@@ -17,7 +17,6 @@
 
 list(APPEND WTF_LIBRARIES
     ${CMAKE_THREAD_LIBS_INIT}
-    ${ICU_LIBRARIES}
 
     ${C_STD_LIBRARY}
     ${KERNEL_LIBRARY}
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index fd99e7d..4416f25 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -166,7 +166,6 @@
 )
 
 set(WebCore_SYSTEM_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
     ${LIBXML2_INCLUDE_DIR}
     ${LIBXSLT_INCLUDE_DIR}
     ${SQLITE_INCLUDE_DIR}
@@ -1196,7 +1195,6 @@
 )
 
 set(WebCore_LIBRARIES
-    ${ICU_LIBRARIES}
     ${LIBXML2_LIBRARIES}
     ${LIBXSLT_LIBRARIES}
     ${SQLITE_LIBRARIES}
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index b3ce813..2912496 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * CMakeLists.txt:
+        * PlatformPlayStation.cmake:
+        * PlatformWPE.cmake:
+
 2019-05-17  Alex Christensen  <achristensen@webkit.org>
 
         Enable legacy EME for iOS WKWebView
diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog
index 94807af..319be99 100644
--- a/Source/WebCore/PAL/ChangeLog
+++ b/Source/WebCore/PAL/ChangeLog
@@ -1,3 +1,14 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * pal/CMakeLists.txt:
+
 2019-05-15  Simon Fraser  <simon.fraser@apple.com>
 
         Make LOG_WITH_STREAM more efficient
diff --git a/Source/WebCore/PAL/pal/CMakeLists.txt b/Source/WebCore/PAL/pal/CMakeLists.txt
index c50c485..fc0091e 100644
--- a/Source/WebCore/PAL/pal/CMakeLists.txt
+++ b/Source/WebCore/PAL/pal/CMakeLists.txt
@@ -37,10 +37,6 @@
     "${PAL_DIR}/pal/text"
 )
 
-set(PAL_SYSTEM_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
-)
-
 set(PAL_LIBRARIES
     JavaScriptCore${DEBUG_SUFFIX}
 )
diff --git a/Source/WebCore/PlatformPlayStation.cmake b/Source/WebCore/PlatformPlayStation.cmake
index d1ea46c..7193bc5 100644
--- a/Source/WebCore/PlatformPlayStation.cmake
+++ b/Source/WebCore/PlatformPlayStation.cmake
@@ -81,7 +81,6 @@
 )
 
 list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
     ${LIBXML2_INCLUDE_DIR}
     ${SQLITE_INCLUDE_DIR}
     ${ZLIB_INCLUDE_DIRS}
@@ -89,7 +88,6 @@
 )
 
 list(APPEND WebCore_LIBRARIES
-    ${ICU_LIBRARIES}
     ${LIBXML2_LIBRARIES}
     ${SQLITE_LIBRARIES}
     ${ZLIB_LIBRARIES}
diff --git a/Source/WebCore/PlatformWPE.cmake b/Source/WebCore/PlatformWPE.cmake
index 1cad0e6..4100c81 100644
--- a/Source/WebCore/PlatformWPE.cmake
+++ b/Source/WebCore/PlatformWPE.cmake
@@ -52,7 +52,6 @@
     ${GLIB_GMODULE_LIBRARIES}
     ${GLIB_GOBJECT_LIBRARIES}
     ${GLIB_LIBRARIES}
-    ${ICU_LIBRARIES}
     ${LIBTASN1_LIBRARIES}
     ${UPOWERGLIB_LIBRARIES}
     ${WPE_LIBRARIES}
@@ -61,7 +60,6 @@
 list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES
     ${GIO_UNIX_INCLUDE_DIRS}
     ${GLIB_INCLUDE_DIRS}
-    ${ICU_INCLUDE_DIRS}
     ${LIBTASN1_INCLUDE_DIRS}
     ${UPOWERGLIB_INCLUDE_DIRS}
     ${WPE_INCLUDE_DIRS}
diff --git a/Source/WebDriver/ChangeLog b/Source/WebDriver/ChangeLog
index e38b7bc..4049ce1 100644
--- a/Source/WebDriver/ChangeLog
+++ b/Source/WebDriver/ChangeLog
@@ -1,3 +1,14 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * PlatformWPE.cmake:
+
 2019-04-14  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake] JavaScriptCore derived sources should only be referenced inside JavaScriptCore
diff --git a/Source/WebDriver/PlatformWPE.cmake b/Source/WebDriver/PlatformWPE.cmake
index ba21798..bd3cd81 100644
--- a/Source/WebDriver/PlatformWPE.cmake
+++ b/Source/WebDriver/PlatformWPE.cmake
@@ -2,7 +2,6 @@
 
 list(APPEND WebDriver_SYSTEM_INCLUDE_DIRECTORIES
     "${GLIB_INCLUDE_DIRS}"
-    "${ICU_INCLUDE_DIRS}"
     "${LIBSOUP_INCLUDE_DIRS}"
 )
 
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt
index 4b0bec7..310f169 100644
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -98,10 +98,6 @@
 
 set(PROTOCOL_GENERATOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
 
-set(WebKit_SYSTEM_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
-)
-
 list(APPEND WebKit_UNIFIED_SOURCE_LIST_FILES
     "Sources.txt"
 )
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 7bb8241..fb9d26c 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,14 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * CMakeLists.txt:
+
 2019-05-17  Alex Christensen  <achristensen@webkit.org>
 
         Enable legacy EME for iOS WKWebView
diff --git a/Source/WebKitLegacy/CMakeLists.txt b/Source/WebKitLegacy/CMakeLists.txt
index b0c77dd..960a970 100644
--- a/Source/WebKitLegacy/CMakeLists.txt
+++ b/Source/WebKitLegacy/CMakeLists.txt
@@ -25,10 +25,6 @@
     "${WebKitLegacy_DERIVED_SOURCES_DIR}"
 )
 
-set(WebKitLegacy_SYSTEM_INCLUDE_DIRECTORIES
-    "${ICU_INCLUDE_DIRS}"
-)
-
 set(WebKitLegacy_LIBRARIES
     PRIVATE JavaScriptCore${DEBUG_SUFFIX}
     PRIVATE WebCore${DEBUG_SUFFIX}
diff --git a/Source/WebKitLegacy/ChangeLog b/Source/WebKitLegacy/ChangeLog
index 69790e8..1dd54ea 100644
--- a/Source/WebKitLegacy/ChangeLog
+++ b/Source/WebKitLegacy/ChangeLog
@@ -1,3 +1,15 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * CMakeLists.txt:
+        * PlatformWin.cmake:
+
 2019-05-03  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r244881.
diff --git a/Source/WebKitLegacy/PlatformWin.cmake b/Source/WebKitLegacy/PlatformWin.cmake
index 7408928..b405d6d 100644
--- a/Source/WebKitLegacy/PlatformWin.cmake
+++ b/Source/WebKitLegacy/PlatformWin.cmake
@@ -24,8 +24,6 @@
         PRIVATE CoreText${DEBUG_SUFFIX}
         PRIVATE QuartzCore${DEBUG_SUFFIX}
         PRIVATE libdispatch${DEBUG_SUFFIX}
-        PRIVATE libicuin${DEBUG_SUFFIX}
-        PRIVATE libicuuc${DEBUG_SUFFIX}
         PRIVATE ${LIBXML2_LIBRARIES}
         PRIVATE ${LIBXSLT_LIBRARIES}
         PRIVATE ${SQLITE_LIBRARIES}
diff --git a/Source/cmake/FindICU.cmake b/Source/cmake/FindICU.cmake
deleted file mode 100644
index f9d79c1..0000000
--- a/Source/cmake/FindICU.cmake
+++ /dev/null
@@ -1,110 +0,0 @@
-# Finds the International Components for Unicode (ICU) Library
-#
-#  ICU_FOUND          - True if ICU found.
-#  ICU_I18N_FOUND     - True if ICU's internationalization library found.
-#  ICU_INCLUDE_DIRS   - Directory to include to get ICU headers
-#                       Note: always include ICU headers as, e.g.,
-#                       unicode/utypes.h
-#  ICU_LIBRARIES      - Libraries to link against for the common ICU
-#  ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation
-#                       (note: in addition to ICU_LIBRARIES)
-
-find_package(PkgConfig)
-pkg_check_modules(PC_ICU icu-uc)
-
-# Look for the header file.
-find_path(
-    ICU_INCLUDE_DIR
-    NAMES unicode/utypes.h
-    HINTS ${PC_ICU_INCLUDE_DIRS}
-          ${PC_ICU_INCLUDEDIR}
-          ${WEBKIT_LIBRARIES_INCLUDE_DIR}
-    DOC "Include directory for the ICU library")
-mark_as_advanced(ICU_INCLUDE_DIR)
-
-# Look for the library.
-find_library(
-    ICU_LIBRARY
-    NAMES libicuuc cygicuuc cygicuuc32 icuuc
-    HINTS ${PC_ICU_LIBRARY_DIRS}
-          ${PC_ICU_LIBDIR}
-          ${WEBKIT_LIBRARIES_LINK_DIR}
-    DOC "Libraries to link against for the common parts of ICU")
-mark_as_advanced(ICU_LIBRARY)
-
-# Copy the results to the output variables.
-if (ICU_INCLUDE_DIR AND ICU_LIBRARY)
-    set(ICU_FOUND 1)
-    set(ICU_LIBRARIES ${ICU_LIBRARY})
-    set(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
-
-    set(ICU_VERSION 0)
-    set(ICU_MAJOR_VERSION 0)
-    set(ICU_MINOR_VERSION 0)
-    file(READ "${ICU_INCLUDE_DIR}/unicode/uversion.h" _ICU_VERSION_CONENTS)
-    string(REGEX REPLACE ".*#define U_ICU_VERSION_MAJOR_NUM ([0-9]+).*" "\\1" ICU_MAJOR_VERSION "${_ICU_VERSION_CONENTS}")
-    string(REGEX REPLACE ".*#define U_ICU_VERSION_MINOR_NUM ([0-9]+).*" "\\1" ICU_MINOR_VERSION "${_ICU_VERSION_CONENTS}")
-
-    set(ICU_VERSION "${ICU_MAJOR_VERSION}.${ICU_MINOR_VERSION}")
-
-    # Look for the ICU internationalization libraries
-    pkg_check_modules(PC_ICU_I18N icu-i18n)
-    find_library(
-        ICU_I18N_LIBRARY
-        NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin
-        HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
-              ${PC_ICU_I18N_LIBDIR}
-              ${WEBKIT_LIBRARIES_LINK_DIR}
-        DOC "Libraries to link against for ICU internationalization")
-    mark_as_advanced(ICU_I18N_LIBRARY)
-    if (ICU_I18N_LIBRARY)
-        set(ICU_I18N_FOUND 1)
-        set(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY})
-    else ()
-        set(ICU_I18N_FOUND 0)
-        set(ICU_I18N_LIBRARIES)
-    endif ()
-
-    # Look for the ICU data libraries
-    find_library(
-        ICU_DATA_LIBRARY
-        NAMES icudata libicudata cygicudata cygicudata32
-        HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
-              ${PC_ICU_I18N_LIBDIR}
-              ${WEBKIT_LIBRARIES_LINK_DIR}
-        DOC "Libraries to link against for ICU data")
-    mark_as_advanced(ICU_DATA_LIBRARY)
-    if (ICU_DATA_LIBRARY)
-        set(ICU_DATA_FOUND 1)
-        set(ICU_DATA_LIBRARIES ${ICU_DATA_LIBRARY})
-    else ()
-        set(ICU_DATA_FOUND 0)
-        set(ICU_DATA_LIBRARIES)
-    endif ()
-else ()
-    set(ICU_FOUND 0)
-    set(ICU_I18N_FOUND 0)
-    set(ICU_DATA_FOUND 0)
-    set(ICU_LIBRARIES)
-    set(ICU_I18N_LIBRARIES)
-    set(ICU_DATA_LIBRARIES)
-    set(ICU_INCLUDE_DIRS)
-    set(ICU_VERSION)
-    set(ICU_MAJOR_VERSION)
-    set(ICU_MINOR_VERSION)
-endif ()
-
-if (ICU_FOUND)
-    if (NOT ICU_FIND_QUIETLY)
-        message(STATUS "Found ICU header files in ${ICU_INCLUDE_DIRS}")
-        message(STATUS "Found ICU libraries: ${ICU_LIBRARIES}")
-        message(STATUS "Found ICU internationaliation libraries: ${ICU_I18N_LIBRARIES}")
-        message(STATUS "Found ICU data libraries: ${ICU_DATA_LIBRARIES}")
-    endif ()
-else ()
-    if (ICU_FIND_REQUIRED)
-        message(FATAL_ERROR "Could not find ICU")
-    else ()
-        message(STATUS "Optional package ICU was not found")
-    endif ()
-endif ()
diff --git a/Source/cmake/OptionsAppleWin.cmake b/Source/cmake/OptionsAppleWin.cmake
index 83810e4..df132f9 100644
--- a/Source/cmake/OptionsAppleWin.cmake
+++ b/Source/cmake/OptionsAppleWin.cmake
@@ -17,6 +17,8 @@
 set(ZLIB_INCLUDE_DIRS "${WEBKIT_LIBRARIES_DIR}/include/zlib")
 set(ZLIB_LIBRARIES zdll${DEBUG_SUFFIX})
 
+include(target/icu)
+
 # Uncomment the following line to try the Direct2D backend.
 # set(USE_DIRECT2D 1)
 
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index d290bef..b21a58f 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -24,7 +24,7 @@
 find_package(GTK3 3.6.0 REQUIRED)
 find_package(GDK3 3.6.0 REQUIRED)
 find_package(HarfBuzz 0.9.2 REQUIRED)
-find_package(ICU REQUIRED)
+find_package(ICU REQUIRED COMPONENTS data i18n uc)
 find_package(JPEG REQUIRED)
 find_package(LibSoup 2.42.0 REQUIRED)
 find_package(LibXml2 2.8.0 REQUIRED)
diff --git a/Source/cmake/OptionsJSCOnly.cmake b/Source/cmake/OptionsJSCOnly.cmake
index 2affab7..16b3b25 100644
--- a/Source/cmake/OptionsJSCOnly.cmake
+++ b/Source/cmake/OptionsJSCOnly.cmake
@@ -96,9 +96,8 @@
 endif ()
 
 if (NOT APPLE)
-    find_package(ICU REQUIRED)
+    find_package(ICU REQUIRED COMPONENTS data i18n uc)
 else ()
     add_definitions(-DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0)
-    set(ICU_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ICU/Headers)
-    set(ICU_LIBRARIES libicucore.dylib)
+    include(target/icu.cmake)
 endif ()
diff --git a/Source/cmake/OptionsMac.cmake b/Source/cmake/OptionsMac.cmake
index fc944e1..60f19f9 100644
--- a/Source/cmake/OptionsMac.cmake
+++ b/Source/cmake/OptionsMac.cmake
@@ -60,5 +60,4 @@
 set(WebCoreTestSupport_LIBRARY_TYPE SHARED)
 
 add_definitions(-DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0)
-set(ICU_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ICU/Headers)
-set(ICU_LIBRARIES libicucore.dylib)
+include(target/icu.cmake)
diff --git a/Source/cmake/OptionsPlayStation.cmake b/Source/cmake/OptionsPlayStation.cmake
index a4e8793..3369af0 100644
--- a/Source/cmake/OptionsPlayStation.cmake
+++ b/Source/cmake/OptionsPlayStation.cmake
@@ -80,7 +80,7 @@
 find_package(Fontconfig REQUIRED)
 find_package(Freetype REQUIRED)
 find_package(HarfBuzz REQUIRED)
-find_package(ICU REQUIRED)
+find_package(ICU REQUIRED COMPONENTS data i18n uc)
 find_package(JPEG REQUIRED)
 find_package(LibPSL REQUIRED)
 find_package(LibXml2 REQUIRED)
diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake
index 5f7f2f6..c71456a 100644
--- a/Source/cmake/OptionsWPE.cmake
+++ b/Source/cmake/OptionsWPE.cmake
@@ -17,7 +17,7 @@
 find_package(Freetype 2.4.2 REQUIRED)
 find_package(GLIB 2.40.0 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
 find_package(HarfBuzz 0.9.18 REQUIRED)
-find_package(ICU REQUIRED)
+find_package(ICU REQUIRED COMPONENTS data i18n uc)
 find_package(JPEG REQUIRED)
 find_package(LibEpoxy 1.4.0 REQUIRED)
 find_package(LibGcrypt 1.6.0 REQUIRED)
diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake
index b6c1386..3e8f769 100644
--- a/Source/cmake/OptionsWin.cmake
+++ b/Source/cmake/OptionsWin.cmake
@@ -164,8 +164,6 @@
     set(WebCore_LIBRARY_TYPE OBJECT)
 endif ()
 
-find_package(ICU REQUIRED)
-
 # If <winsock2.h> is not included before <windows.h> redefinition errors occur
 # unless _WINSOCKAPI_ is defined before <windows.h> is included
 add_definitions(-D_WINSOCKAPI_=)
diff --git a/Source/cmake/OptionsWinCairo.cmake b/Source/cmake/OptionsWinCairo.cmake
index a716ec6..0fbad95 100644
--- a/Source/cmake/OptionsWinCairo.cmake
+++ b/Source/cmake/OptionsWinCairo.cmake
@@ -4,6 +4,7 @@
 
 find_package(Cairo 1.15.12 REQUIRED)
 find_package(CURL 7.60.0 REQUIRED)
+find_package(ICU REQUIRED COMPONENTS data i18n uc)
 find_package(JPEG 1.5.2 REQUIRED)
 find_package(LibXml2 2.9.7 REQUIRED)
 find_package(OpenSSL 2.0.0 REQUIRED)
diff --git a/Source/cmake/target/icu.cmake b/Source/cmake/target/icu.cmake
new file mode 100644
index 0000000..092eba5
--- /dev/null
+++ b/Source/cmake/target/icu.cmake
@@ -0,0 +1,48 @@
+# Apple ports provide their own ICU that can't be found by find_package(ICU).
+# This file will create targets that would be created by find_package(ICU).
+if (NOT TARGET ICU::data)
+    if (APPLE)
+        set(ICU_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ICU/Headers)
+
+        # Apple just has a single dylib for ICU
+        set(ICU_I18N_LIBRARY libicucore.dylib)
+        set(ICU_UC_LIBRARY libicucore.dylib)
+        set(ICU_DATA_LIBRARY libicucore.dylib)
+
+        set(ICU_LIBRARIES ${ICU_UC_LIBRARY})
+    elseif (WIN32 AND NOT WTF_PLATFORM_WIN_CAIRO)
+        set(ICU_INCLUDE_DIRS ${WEBKIT_LIBRARIES_INCLUDE_DIR})
+
+        set(ICU_I18N_LIBRARY ${WEBKIT_LIBRARIES_LINK_DIR}/libicuin${DEBUG_SUFFIX}.lib)
+        set(ICU_UC_LIBRARY ${WEBKIT_LIBRARIES_LINK_DIR}/libicuuc${DEBUG_SUFFIX}.lib)
+
+        # AppleWin does not provide a separate data library
+        set(ICU_DATA_LIBRARY ${ICU_UC_LIBRARY})
+
+        set(ICU_LIBRARIES ${ICU_I18N_LIBRARY} ${ICU_UC_LIBRARY})
+    else ()
+        message(FATAL_ERROR "Could not find ICU targets. Use find_package(ICU REQUIRED data i1n8 uc)")
+    endif ()
+
+    # Emulate ICU:: targets
+    add_library(ICU::data UNKNOWN IMPORTED)
+    set_target_properties(ICU::data PROPERTIES
+        INTERFACE_INCLUDE_DIRECTORIES "${ICU_INCLUDE_DIRS}"
+        IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+        IMPORTED_LOCATION "${ICU_DATA_LIBRARY}"
+    )
+
+    add_library(ICU::i18n UNKNOWN IMPORTED)
+    set_target_properties(ICU::i18n PROPERTIES
+        INTERFACE_INCLUDE_DIRECTORIES "${ICU_INCLUDE_DIRS}"
+        IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+        IMPORTED_LOCATION "${ICU_I18N_LIBRARY}"
+    )
+
+    add_library(ICU::uc UNKNOWN IMPORTED)
+    set_target_properties(ICU::uc PROPERTIES
+        INTERFACE_INCLUDE_DIRECTORIES "${ICU_INCLUDE_DIRS}"
+        IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+        IMPORTED_LOCATION "${ICU_UC_LIBRARY}"
+    )
+endif ()
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 8a0c4e8..7a9ef1c 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,17 @@
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * TestWebKitAPI/PlatformMac.cmake:
+        * TestWebKitAPI/PlatformPlayStation.cmake:
+        * TestWebKitAPI/PlatformWin.cmake:
+        * WebKitTestRunner/CMakeLists.txt:
+
 2019-05-17  Alex Christensen  <achristensen@webkit.org>
 
         Enable legacy EME for iOS WKWebView
diff --git a/Tools/TestWebKitAPI/PlatformMac.cmake b/Tools/TestWebKitAPI/PlatformMac.cmake
index 4e295d6..38925dc 100644
--- a/Tools/TestWebKitAPI/PlatformMac.cmake
+++ b/Tools/TestWebKitAPI/PlatformMac.cmake
@@ -17,7 +17,6 @@
     ${CARBON_LIBRARY}
     ${COCOA_LIBRARY}
     ${COREFOUNDATION_LIBRARY}
-    ${ICU_LIBRARIES}
 )
 
 list(APPEND TestWebKitAPI_LIBRARIES
diff --git a/Tools/TestWebKitAPI/PlatformPlayStation.cmake b/Tools/TestWebKitAPI/PlatformPlayStation.cmake
index abb8690f..952d043 100644
--- a/Tools/TestWebKitAPI/PlatformPlayStation.cmake
+++ b/Tools/TestWebKitAPI/PlatformPlayStation.cmake
@@ -10,10 +10,6 @@
     generic/UtilitiesGeneric.cpp
 )
 
-list(APPEND TestWTF_PRIVATE_INCLUDE_DIRECTORIES
-    ${ICU_INCLUDE_DIRS}
-)
-
 list(APPEND TestWebCore_SOURCES
     ${test_main_SOURCES}
 )
diff --git a/Tools/TestWebKitAPI/PlatformWin.cmake b/Tools/TestWebKitAPI/PlatformWin.cmake
index 651ea15..4aa7cd9 100644
--- a/Tools/TestWebKitAPI/PlatformWin.cmake
+++ b/Tools/TestWebKitAPI/PlatformWin.cmake
@@ -78,8 +78,6 @@
         WebKitQuartzCoreAdditions${DEBUG_SUFFIX}
         libdispatch${DEBUG_SUFFIX}
         libexslt${DEBUG_SUFFIX}
-        libicuin${DEBUG_SUFFIX}
-        libicuuc${DEBUG_SUFFIX}
     )
 endif ()
 
diff --git a/Tools/WebKitTestRunner/CMakeLists.txt b/Tools/WebKitTestRunner/CMakeLists.txt
index 34ff64a..632aa0b 100644
--- a/Tools/WebKitTestRunner/CMakeLists.txt
+++ b/Tools/WebKitTestRunner/CMakeLists.txt
@@ -51,7 +51,6 @@
 
 set(WebKitTestRunner_SYSTEM_INCLUDE_DIRECTORIES
     ${LIBSOUP_INCLUDE_DIRS}
-    ${ICU_INCLUDE_DIRS}
 )
 
 set(WebKitTestRunnerInjectedBundle_SOURCES
