================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to