diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -155,25 +155,22 @@ endif() find_library(ICONV_LIBRARY_PATH NAMES iconv libiconv libiconv-2 c) - set(LLVM_LIBXML2_ENABLED 0) - set(LIBXML2_FOUND 0) if((LLVM_ENABLE_LIBXML2) AND ((CMAKE_SYSTEM_NAME MATCHES "Linux") AND (ICONV_LIBRARY_PATH) OR APPLE)) find_package(LibXml2) if (LIBXML2_FOUND) - set(LLVM_LIBXML2_ENABLED 1) + set(HAVE_LIBXML2 TRUE) if ((CMAKE_OSX_SYSROOT) AND (EXISTS ${CMAKE_OSX_SYSROOT}/${LIBXML2_INCLUDE_DIR})) include_directories(${CMAKE_OSX_SYSROOT}/${LIBXML2_INCLUDE_DIR}) else() include_directories(${LIBXML2_INCLUDE_DIR}) endif() - set(LIBXML2_LIBS "xml2") endif() endif() endif() endif() -if (LLVM_ENABLE_LIBXML2 STREQUAL "FORCE_ON" AND NOT LLVM_LIBXML2_ENABLED) - message(FATAL_ERROR "Failed to congifure libxml2") +if (LLVM_ENABLE_LIBXML2 STREQUAL "FORCE_ON" AND NOT HAVE_LIBXML2) + message(FATAL_ERROR "libxml2 enabled but not found.") endif() check_library_exists(xar xar_open "" HAVE_LIBXAR) diff --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in --- a/llvm/cmake/modules/LLVMConfig.cmake.in +++ b/llvm/cmake/modules/LLVMConfig.cmake.in @@ -49,7 +49,7 @@ set(LLVM_ENABLE_ZLIB @LLVM_ENABLE_ZLIB@) -set(LLVM_LIBXML2_ENABLED @LLVM_LIBXML2_ENABLED@) +set(LLVM_ENABLE_LIBXML2 @LLVM_ENABLE_LIBXML2@) set(LLVM_WITH_Z3 @LLVM_WITH_Z3@) diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake --- a/llvm/include/llvm/Config/config.h.cmake +++ b/llvm/include/llvm/Config/config.h.cmake @@ -112,6 +112,9 @@ /* Define to 1 if you have the `z' library (-lz). */ #cmakedefine HAVE_LIBZ ${HAVE_LIBZ} +/* Define to 1 if you have the `xml2' library (-lxml2). */ +#cmakedefine HAVE_LIBXML2 ${HAVE_LIBXML2} + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LINK_H ${HAVE_LINK_H} @@ -309,7 +312,7 @@ #cmakedefine01 LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO /* Define if libxml2 is supported on this platform. */ -#cmakedefine LLVM_LIBXML2_ENABLED ${LLVM_LIBXML2_ENABLED} +#cmakedefine LLVM_ENABLE_LIBXML2 ${LLVM_ENABLE_LIBXML2} /* Define to the extension used for shared libraries, say, ".so". */ #cmakedefine LTDL_SHLIB_EXT "${LTDL_SHLIB_EXT}" diff --git a/llvm/lib/WindowsManifest/CMakeLists.txt b/llvm/lib/WindowsManifest/CMakeLists.txt --- a/llvm/lib/WindowsManifest/CMakeLists.txt +++ b/llvm/lib/WindowsManifest/CMakeLists.txt @@ -1,7 +1,7 @@ set(system_libs) if( CMAKE_HOST_UNIX ) - if( LLVM_LIBXML2_ENABLED ) - set(system_libs ${system_libs} ${LIBXML2_LIBS}) + if( HAVE_LIBXML2 ) + set(system_libs ${system_libs} ${LIBXML2_LIBRARIES}) endif() endif() diff --git a/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp b/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp --- a/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp +++ b/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp @@ -16,7 +16,7 @@ #include -#if LLVM_LIBXML2_ENABLED +#if HAVE_LIBXML2 #include #endif @@ -41,7 +41,7 @@ private: static void errorCallback(void *Ctx, const char *Format, ...); Error getParseError(); -#if LLVM_LIBXML2_ENABLED +#if HAVE_LIBXML2 xmlDocPtr CombinedDoc = nullptr; std::vector MergedDocs; @@ -56,7 +56,7 @@ bool ParseErrorOccurred = false; }; -#if LLVM_LIBXML2_ENABLED +#if HAVE_LIBXML2 static constexpr std::pair MtNsHrefsPrefixes[] = { {"urn:schemas-microsoft-com:asm.v1", "ms_asmv1"}, diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -1,6 +1,7 @@ llvm_canonicalize_cmake_booleans( BUILD_SHARED_LIBS HAVE_LIBXAR + HAVE_LIBXML2 HAVE_LIBZ HAVE_OCAMLOPT HAVE_OCAML_OUNIT diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py --- a/llvm/test/lit.cfg.py +++ b/llvm/test/lit.cfg.py @@ -327,11 +327,11 @@ if config.have_libxar: config.available_features.add('xar') +if config.have_libxml2: + config.available_features.add('libxml2') + if config.enable_threads: config.available_features.add('thread_support') -if config.llvm_libxml2_enabled: - config.available_features.add('libxml2') - if config.have_opt_viewer_modules: config.available_features.add('have_opt_viewer_modules') diff --git a/llvm/test/lit.site.cfg.py.in b/llvm/test/lit.site.cfg.py.in --- a/llvm/test/lit.site.cfg.py.in +++ b/llvm/test/lit.site.cfg.py.in @@ -35,13 +35,13 @@ config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@" config.have_zlib = @HAVE_LIBZ@ config.have_libxar = @HAVE_LIBXAR@ +config.have_libxml2 = @HAVE_LIBXML2@ config.have_dia_sdk = @LLVM_ENABLE_DIA_SDK@ config.enable_ffi = @LLVM_ENABLE_FFI@ config.build_examples = @LLVM_BUILD_EXAMPLES@ config.enable_threads = @LLVM_ENABLE_THREADS@ config.build_shared_libs = @BUILD_SHARED_LIBS@ config.link_llvm_dylib = @LLVM_LINK_LLVM_DYLIB@ -config.llvm_libxml2_enabled = @LLVM_LIBXML2_ENABLED@ config.llvm_host_triple = '@LLVM_HOST_TRIPLE@' config.host_arch = "@HOST_ARCH@" config.have_opt_viewer_modules = @LLVM_HAVE_OPT_VIEWER_MODULES@