[cmake] Fix find libxml2 for Windows static libraries (#194894)
* Add the usual Windows static library name "libxml2s" * Windows build with static libxml2 requires compiler define
This commit is contained in:
@@ -235,6 +235,7 @@ if(LLVM_ENABLE_LIBXML2)
|
||||
cmake_push_check_state()
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIR})
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_STATIC_LIBRARY} ${LIBXML2_STATIC_DEPS})
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS ${LIBXML2_DEFINITIONS})
|
||||
check_symbol_exists(xmlReadMemory libxml/xmlreader.h HAVE_LIBXML2_STATIC)
|
||||
cmake_pop_check_state()
|
||||
if(NOT HAVE_LIBXML2_STATIC)
|
||||
|
||||
@@ -33,6 +33,7 @@ find_library(LIBXML2_LIBRARY NAMES xml2 libxml2 libxml2s libxml2_a
|
||||
)
|
||||
|
||||
find_library(LIBXML2_STATIC_LIBRARY NAMES
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}libxml2s${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}xml2${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}libxml2${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
HINTS
|
||||
@@ -51,12 +52,14 @@ if(LibXml2_FOUND)
|
||||
add_library(LibXml2::LibXml2 UNKNOWN IMPORTED)
|
||||
set_target_properties(LibXml2::LibXml2 PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIR}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_LIBXML_CFLAGS_OTHER}"
|
||||
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}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_LIBXML_CFLAGS_OTHER}"
|
||||
IMPORTED_LOCATION "${LIBXML2_STATIC_LIBRARY}")
|
||||
# Static libraries need their transitive dependencies for linking.
|
||||
set(LIBXML2_STATIC_DEPS)
|
||||
|
||||
Reference in New Issue
Block a user