https://github.com/petrhosek created https://github.com/llvm/llvm-project/pull/191609
Reverts llvm/llvm-project#166867 >From 385b8d9b29302a87497480d2f339d5d8151ec8cb Mon Sep 17 00:00:00 2001 From: Petr Hosek <[email protected]> Date: Sat, 11 Apr 2026 00:15:34 -0700 Subject: [PATCH] Revert "[cmake] Add support for statically linking libxml2 (#166867)" This reverts commit 11a802685043cb1e9b23e54437da011bdfbf1d61. --- clang/cmake/caches/Release.cmake | 4 -- llvm/CMakeLists.txt | 2 - llvm/cmake/config-ix.cmake | 19 +------ llvm/cmake/modules/FindLibXml2.cmake | 75 ------------------------- llvm/lib/WindowsManifest/CMakeLists.txt | 10 +--- 5 files changed, 6 insertions(+), 104 deletions(-) delete mode 100644 llvm/cmake/modules/FindLibXml2.cmake diff --git a/clang/cmake/caches/Release.cmake b/clang/cmake/caches/Release.cmake index b0bc3ebfe5cb6..efe20a201dbc9 100644 --- a/clang/cmake/caches/Release.cmake +++ b/clang/cmake/caches/Release.cmake @@ -172,10 +172,6 @@ set_final_stage_var(CPACK_GENERATOR "TXZ" STRING) set_final_stage_var(CPACK_ARCHIVE_THREADS "0" STRING) set_final_stage_var(LLVM_USE_STATIC_ZSTD "ON" BOOL) -if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux") - set_final_stage_var(LLVM_USE_STATIC_LIBXML2 "ON" BOOL) -endif() - if (LLVM_RELEASE_ENABLE_LTO) set_final_stage_var(LLVM_ENABLE_FATLTO "ON" BOOL) set_final_stage_var(CPACK_PRE_BUILD_SCRIPTS "${CMAKE_CURRENT_LIST_DIR}/release_cpack_pre_build_strip_lto.cmake" STRING) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 6001928f92e37..da012596cca93 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -646,8 +646,6 @@ set(LLVM_TARGET_ARCH "host" set(LLVM_ENABLE_LIBXML2 "ON" CACHE STRING "Use libxml2 if available. Can be ON, OFF, or FORCE_ON") -set(LLVM_USE_STATIC_LIBXML2 "OFF" CACHE BOOL "Use static version of libxml2. Can be ON, or OFF") - option(LLVM_ENABLE_LIBEDIT "Use libedit if available." ON) option(LLVM_ENABLE_LIBPFM "Use libpfm for performance counters if available." ON) diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index 7eca375e29b87..7a5631b1ae3b5 100644 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -219,27 +219,14 @@ if(LLVM_ENABLE_LIBXML2) # Check if libxml2 we found is usable; for example, we may have found a 32-bit # library on a 64-bit system which would result in a link-time failure. cmake_push_check_state() - list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIR}) - list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_LIBRARY}) + list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIRS}) + list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_LIBRARIES}) + list(APPEND CMAKE_REQUIRED_DEFINITIONS ${LIBXML2_DEFINITIONS}) check_symbol_exists(xmlReadMemory libxml/xmlreader.h HAVE_LIBXML2) cmake_pop_check_state() if(LLVM_ENABLE_LIBXML2 STREQUAL FORCE_ON AND NOT HAVE_LIBXML2) message(FATAL_ERROR "Failed to configure libxml2") endif() - - if(LLVM_USE_STATIC_LIBXML2) - if(NOT TARGET LibXml2::LibXml2Static) - message(FATAL_ERROR "Failed to find static libxml2 library, but LLVM_USE_STATIC_LIBXML2=ON") - endif() - cmake_push_check_state() - list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIR}) - list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_STATIC_LIBRARY} ${LIBXML2_STATIC_DEPS}) - check_symbol_exists(xmlReadMemory libxml/xmlreader.h HAVE_LIBXML2_STATIC) - cmake_pop_check_state() - if(NOT HAVE_LIBXML2_STATIC) - message(FATAL_ERROR "Failed to configure static libxml2, but LLVM_USE_STATIC_LIBXML2=ON") - endif() - endif() endif() set(LLVM_ENABLE_LIBXML2 "${HAVE_LIBXML2}") endif() diff --git a/llvm/cmake/modules/FindLibXml2.cmake b/llvm/cmake/modules/FindLibXml2.cmake deleted file mode 100644 index 24080bb1aeab2..0000000000000 --- a/llvm/cmake/modules/FindLibXml2.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# Try to find the libxml2 library -# -# If successful, the following variables will be defined: -# LIBXML2_INCLUDE_DIR -# LIBXML2_LIBRARY -# LIBXML2_STATIC_LIBRARY -# LibXml2_FOUND -# -# Additionally, the following import targets will be defined: -# LibXml2::LibXml2 -# LibXml2::LibXml2Static (if the static library is found) - -find_package(PkgConfig QUIET) -if(PkgConfig_FOUND) - pkg_check_modules(PC_LIBXML QUIET libxml-2.0) -endif() - -find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h - HINTS - ${PC_LIBXML_INCLUDEDIR} - ${PC_LIBXML_INCLUDE_DIRS} - PATH_SUFFIXES libxml2 -) - -if(DEFINED LIBXML2_LIBRARIES AND NOT DEFINED LIBXML2_LIBRARY) - set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES}) -endif() - -find_library(LIBXML2_LIBRARY NAMES xml2 libxml2 libxml2_a - HINTS - ${PC_LIBXML_LIBDIR} - ${PC_LIBXML_LIBRARY_DIRS} -) - -find_library(LIBXML2_STATIC_LIBRARY NAMES - "${CMAKE_STATIC_LIBRARY_PREFIX}xml2${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${CMAKE_STATIC_LIBRARY_PREFIX}libxml2${CMAKE_STATIC_LIBRARY_SUFFIX}" - HINTS - ${PC_LIBXML_LIBDIR} - ${PC_LIBXML_LIBRARY_DIRS} -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LibXml2 - REQUIRED_VARS LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR - VERSION_VAR PC_LIBXML_VERSION -) - -if(LibXml2_FOUND) - if(NOT TARGET LibXml2::LibXml2) - add_library(LibXml2::LibXml2 UNKNOWN IMPORTED) - set_target_properties(LibXml2::LibXml2 PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIR}" - IMPORTED_LOCATION "${LIBXML2_LIBRARY}") - endif() - if(LIBXML2_STATIC_LIBRARY AND NOT TARGET LibXml2::LibXml2Static) - add_library(LibXml2::LibXml2Static STATIC IMPORTED) - set_target_properties(LibXml2::LibXml2Static PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIR}" - IMPORTED_LOCATION "${LIBXML2_STATIC_LIBRARY}") - # Static libraries need their transitive dependencies for linking. - set(LIBXML2_STATIC_DEPS) - foreach(lib IN LISTS PC_LIBXML_STATIC_LIBRARIES) - if(NOT lib STREQUAL "xml2") - list(APPEND LIBXML2_STATIC_DEPS ${lib}) - endif() - endforeach() - if(LIBXML2_STATIC_DEPS) - set_target_properties(LibXml2::LibXml2Static PROPERTIES - INTERFACE_LINK_LIBRARIES "${LIBXML2_STATIC_DEPS}") - endif() - endif() -endif() - -mark_as_advanced(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARY LIBXML2_STATIC_LIBRARY) diff --git a/llvm/lib/WindowsManifest/CMakeLists.txt b/llvm/lib/WindowsManifest/CMakeLists.txt index 46fe3b50357b6..910132a4c7dec 100644 --- a/llvm/lib/WindowsManifest/CMakeLists.txt +++ b/llvm/lib/WindowsManifest/CMakeLists.txt @@ -1,11 +1,7 @@ include(GetLibraryName) if(LLVM_ENABLE_LIBXML2) - if(LLVM_USE_STATIC_LIBXML2) - set(imported_libs LibXml2::LibXml2Static) - else() - set(imported_libs LibXml2::LibXml2) - endif() + set(imported_libs LibXml2::LibXml2) endif() add_llvm_component_library(LLVMWindowsManifest @@ -28,10 +24,10 @@ if(LLVM_ENABLE_LIBXML2) # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators. if(CMAKE_BUILD_TYPE) string(TOUPPER ${CMAKE_BUILD_TYPE} build_type) - get_property(libxml2_library TARGET ${imported_libs} PROPERTY LOCATION_${build_type}) + get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION_${build_type}) endif() if(NOT libxml2_library) - get_property(libxml2_library TARGET ${imported_libs} PROPERTY LOCATION) + get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION) endif() get_library_name(${libxml2_library} libxml2_library) set_property(TARGET LLVMWindowsManifest PROPERTY LLVM_SYSTEM_LIBS ${libxml2_library}) _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
