[Lldb-commits] [clang] [lldb] [llvm] [cmake] Add support for statically linking libxml2 (PR #166867)
Petr Hosek via lldb-commits
lldb-commits at lists.llvm.org
Sun Nov 9 22:51:05 PST 2025
================
@@ -0,0 +1,31 @@
+include(ExternalProject)
+
+if (NOT LIBXML2_PREFIX)
+ set (LIBXML2_PREFIX libxml2)
+endif()
+
+set(LIBXML2_PATH ${CMAKE_CURRENT_BINARY_DIR}/${LIBXML2_PREFIX}/src/${LIBXML2_PREFIX})
+set(LIBXML2_LIB_PATH ${LIBXML2_PATH}-build/libxml2.a)
+
+ExternalProject_Add(${LIBXML2_PREFIX}
+ PREFIX ${LIBXML2_PREFIX}
+ GIT_REPOSITORY https://github.com/GNOME/libxml2.git
+ GIT_TAG v2.15.1
+ CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DBUILD_SHARED_LIBS=OFF
+ -DLIBXML2_WITH_PYTHON=OFF
+ -DLIBXML2_WITH_PROGRAMS=OFF
+ -DLIBXML2_WITH_TESTS=OFF
+ -DLIBXML2_WITH_LZMA=OFF
+ -DLIBXML2_WITH_ZLIB=OFF
+ CMAKE_CACHE_ARGS -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
+ -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
+ BUILD_BYPRODUCTS ${LIBXML2_LIB_PATH}
+ UPDATE_COMMAND ""
+ INSTALL_COMMAND ""
+ )
----------------
petrhosek wrote:
I don't want the build system to automatically clone and build a dependency without my approval (and what's worse, control this behavior by a flag such as `LLVM_USE_STATIC_LIBXML2`). This won't work on machines don't allow internet access during build stage (our bots actually fall into that category, and they statically link libxml2 already). I may also want to reuse an existing build of libxml2 or configure it in a specific way (for example enabling the zlib support or enabling LTO) which this implementation doesn't let me.
https://github.com/llvm/llvm-project/pull/166867
More information about the lldb-commits
mailing list