aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Tong <hstong@ca.ibm.com>2025-09-17 01:25:57 -0400
committerHubert Tong <hubert.reinterpretcast@gmail.com>2025-09-17 01:40:39 -0400
commit35627b36982087c6b227ff8796a6e9950550214e (patch)
tree32920578239be6828b3f2b5fecc1db676963c9e1
parentb3a1c777824527bf771c7187a0b685feb7ef04f7 (diff)
downloadllvm-users/hubert-reinterpretcast/lit-features-for-icu-iconv.zip
llvm-users/hubert-reinterpretcast/lit-features-for-icu-iconv.tar.gz
llvm-users/hubert-reinterpretcast/lit-features-for-icu-iconv.tar.bz2
[clang][LIT] Add LIT "features" for build configs with ICU or iconvusers/hubert-reinterpretcast/lit-features-for-icu-iconv
... in preparation for `-finput-charset` and `-fexec-charset` tests that rely on the availability of one or the other; however, this does not address the problem of varying `iconv` support of (and names for) character encodings. Co-authored-by: Abhina Sreeskantharajan <Abhina.Sreeskantharajan@ibm.com>
-rw-r--r--clang/test/CMakeLists.txt2
-rw-r--r--clang/test/lit.site.cfg.py.in2
-rw-r--r--llvm/cmake/config-ix.cmake2
-rw-r--r--llvm/utils/lit/lit/llvm/config.py6
4 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index e9f4f83..cf74636 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -16,6 +16,8 @@ llvm_canonicalize_cmake_booleans(
LLVM_BUILD_EXAMPLES
LLVM_BYE_LINK_INTO_TOOLS
LLVM_ENABLE_PLUGINS
+ HAVE_ICU
+ HAVE_ICONV
LLVM_ENABLE_ZLIB
LLVM_ENABLE_ZSTD
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
diff --git a/clang/test/lit.site.cfg.py.in b/clang/test/lit.site.cfg.py.in
index f50953a..c6d2164 100644
--- a/clang/test/lit.site.cfg.py.in
+++ b/clang/test/lit.site.cfg.py.in
@@ -18,6 +18,8 @@ config.clang_lib_dir = path(r"@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
config.host_triple = "@LLVM_HOST_TRIPLE@"
config.target_triple = "@LLVM_TARGET_TRIPLE@"
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
+config.have_icu = @HAVE_ICU@
+config.have_iconv = @HAVE_ICONV@
config.have_zlib = @LLVM_ENABLE_ZLIB@
config.have_zstd = @LLVM_ENABLE_ZSTD@
config.clang_objc_rewriter = @CLANG_ENABLE_OBJC_REWRITER@
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index ed2bfa6..ebc2a7c 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -310,6 +310,7 @@ if (LLVM_ENABLE_ICU STREQUAL FORCE_ON AND LLVM_ENABLE_ICONV STREQUAL FORCE_ON)
endif()
# Check for ICU. Only allow an optional, dynamic link for ICU so we don't impact LLVM's licensing.
+set(HAVE_ICU 0)
if(LLVM_ENABLE_ICU AND NOT(LLVM_ENABLE_ICONV STREQUAL FORCE_ON))
set(LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_SHARED_LIBRARY_SUFFIX}")
@@ -326,6 +327,7 @@ if(LLVM_ENABLE_ICU AND NOT(LLVM_ENABLE_ICONV STREQUAL FORCE_ON))
endif()
# Check only for builtin iconv to avoid licensing issues.
+set(HAVE_ICONV 0)
if(LLVM_ENABLE_ICONV AND NOT HAVE_ICU)
if (LLVM_ENABLE_ICONV STREQUAL FORCE_ON)
find_package(Iconv REQUIRED)
diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py
index 2f2df68..b2f5e0f 100644
--- a/llvm/utils/lit/lit/llvm/config.py
+++ b/llvm/utils/lit/lit/llvm/config.py
@@ -145,6 +145,12 @@ class LLVMConfig(object):
have_zstd = getattr(config, "have_zstd", None)
if have_zstd:
features.add("zstd")
+ have_icu = getattr(config, "have_icu", None)
+ if have_icu:
+ features.add("icu")
+ have_iconv = getattr(config, "have_iconv", None)
+ if have_iconv:
+ features.add("iconv")
if getattr(config, "reverse_iteration", None):
features.add("reverse_iteration")