[llvm] Create a CharSetConverter class with both iconv and icu support (PR #74516)

Aaron Ballman via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 19 04:52:02 PDT 2024


================
@@ -257,6 +257,37 @@ else()
   set(LLVM_ENABLE_TERMINFO 0)
 endif()
 
+#Check for icu.
+if(LLVM_ENABLE_ICU)
+  set(LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+  set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
+  if (LLVM_ENABLE_ICU STREQUAL FORCE_ON)
+    find_package(ICU REQUIRED COMPONENTS uc i18n)
+    if (NOT ICU_FOUND)
+      message(FATAL_ERROR "Failed to configure icu, but LLVM_ENABLE_ICU is FORCE_ON")
+    endif()
+  else()
+    find_package(ICU COMPONENTS uc i18n)
+  endif()
+  set(HAVE_ICU ${ICU_FOUND})
+  set(CMAKE_FIND_LIBRARY_SUFFIXES ${LIBRARY_SUFFIXES})
+endif()
+
+# Check for iconv.
+if(LLVM_ENABLE_ICONV)
----------------
AaronBallman wrote:

Ah, that's entirely possible this just works (I'm familiar with cmake but by no means an expert). Have you locally tested that you get no link errors when enabling iconv and it's already installed on the system? (and I sort of wonder whether this means we should have a both set up to build with ICU and with iconv to ensure all tests pass with either library)

https://github.com/llvm/llvm-project/pull/74516


More information about the llvm-commits mailing list