Fix ICU build in CMake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f7e5c7..6b67010 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,7 @@
 endif()
 
 if(LIBXML2_WITH_ICU)
-	find_package(ICU REQUIRED)
+	find_package(ICU REQUIRED COMPONENTS data i18n uc)
 endif()
 
 if(LIBXML2_WITH_LZMA)
@@ -463,7 +463,7 @@
 endif()
 
 if(LIBXML2_WITH_ICU)
-	target_link_libraries(LibXml2 PRIVATE ICU::i18n)
+	target_link_libraries(LibXml2 PRIVATE ICU::data ICU::i18n ICU::uc)
 	if(WIN32)
 		set(ICU_LIBS "-licudt -licuin -licuuc")
 	else()
diff --git a/libxml2-config.cmake.cmake.in b/libxml2-config.cmake.cmake.in
index 8614f21..f176057 100644
--- a/libxml2-config.cmake.cmake.in
+++ b/libxml2-config.cmake.cmake.in
@@ -95,7 +95,7 @@
   endif()
 
   if(@LIBXML2_WITH_ICU@)
-    find_dependency(ICU)
+    find_dependency(ICU COMPONENTS data i18n uc)
     list(APPEND LIBXML2_LIBRARIES    ${ICU_LIBRARIES})
     list(APPEND LIBXML2_INCLUDE_DIRS ${ICU_INCLUDE_DIRS})
   endif()
diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
index 73112ef..cc5972e 100644
--- a/libxml2-config.cmake.in
+++ b/libxml2-config.cmake.in
@@ -57,10 +57,10 @@
 endif()
 
 if(@WITH_ICU@)
-  find_dependency(ICU)
+  find_dependency(ICU COMPONENTS data i18n uc)
   list(APPEND LIBXML2_LIBRARIES    ${ICU_LIBRARIES})
   list(APPEND LIBXML2_INCLUDE_DIRS ${ICU_INCLUDE_DIRS})
-  list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ICU::i18n>")
+  list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ICU::data>;\$<LINK_ONLY:ICU::i18n>;\$<LINK_ONLY:ICU::uc>")
 endif()
 
 if(@WITH_LZMA@)