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

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 27 09:30:54 PDT 2024


================
@@ -257,6 +257,35 @@ 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)
+  if (LLVM_ENABLE_ICONV STREQUAL FORCE_ON)
+    find_package(Iconv REQUIRED)
----------------
efriedma-quic wrote:

If anyone is statically linking to libc, they're on their own in terms of licensing.

I'm specifically worried about Windows here because Microsoft libc doesn't have iconv, but mingw has a package for GNU iconv.  So the iconv license would be different from the libc license.

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


More information about the llvm-commits mailing list