Merge pull request #20296 from neheb/1

libxml2: build with cmake
This commit is contained in:
Michael Heimpold 2023-01-16 21:09:27 +01:00 committed by GitHub
commit e6ead24285
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 97 additions and 71 deletions

View file

@ -9,23 +9,20 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libxml2
PKG_VERSION:=2.10.3
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
PKG_HASH:=5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:xmlsoft:libxml2
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=0
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/nls.mk
define Package/libxml2
@ -68,70 +65,83 @@ define Package/libxml2-utils/description
from libxml2, a library for manipulating XML and HTML resources.
endef
TARGET_CFLAGS += $(FPIC)
CMAKE_HOST_OPTIONS += \
-DBUILD_SHARED_LIBS=OFF \
-DLIBXML2_WITH_C14N=ON \
-DLIBXML2_WITH_CATALOG=OFF \
-DLIBXML2_WITH_DEBUG=ON \
-DLIBXML2_WITH_FTP=OFF \
-DLIBXML2_WITH_HTML=ON \
-DLIBXML2_WITH_HTTP=OFF \
-DLIBXML2_WITH_ICONV=ON \
-DLIBXML2_WITH_ICU=OFF \
-DLIBXML2_WITH_ISO8859X=OFF \
-DLIBXML2_WITH_LEGACY=OFF \
-DLIBXML2_WITH_LZMA=OFF \
-DLIBXML2_WITH_MEM_DEBUG=OFF \
-DLIBXML2_WITH_MODULES=OFF \
-DLIBXML2_WITH_OUTPUT=ON \
-DLIBXML2_WITH_PATTERN=ON \
-DLIBXML2_WITH_PROGRAMS=OFF \
-DLIBXML2_WITH_PUSH=ON \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_READER=ON \
-DLIBXML2_WITH_REGEXPS=ON \
-DLIBXML2_WITH_RUN_DEBUG=OFF \
-DLIBXML2_WITH_SAX1=ON \
-DLIBXML2_WITH_SCHEMAS=ON \
-DLIBXML2_WITH_SCHEMATRON=OFF \
-DLIBXML2_WITH_TESTS=OFF \
-DLIBXML2_WITH_THREADS=ON \
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
-DLIBXML2_WITH_TREE=ON \
-DLIBXML2_WITH_VALID=ON \
-DLIBXML2_WITH_WRITER=ON \
-DLIBXML2_WITH_XINCLUDE=ON \
-DLIBXML2_WITH_XPATH=ON \
-DLIBXML2_WITH_XPTR=ON \
-DLIBXML2_WITH_XPTR_LOCS=ON \
-DLIBXML2_WITH_ZLIB=ON
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
--with-c14n \
--without-catalog \
--with-debug \
--with-html \
--without-ftp \
--without-http \
--without-iso8859x \
--without-legacy \
--with-output \
--without-pattern \
--without-push \
--without-python \
--with-reader \
--without-readline \
--without-regexps \
--with-sax1 \
--with-schemas \
--with-threads \
--with-tree \
--with-valid \
--with-writer \
--with-xinclude \
--with-xpath \
--with-xptr \
--with-zlib=$(STAGING_DIR)/usr \
--with-iconv$(if $(ICONV_PREFIX),="$(ICONV_PREFIX)") \
--without-lzma
HOST_CONFIGURE_ARGS += \
--disable-shared \
--enable-static \
--with-pic \
--with-c14n \
--without-catalog \
--with-debug \
--with-html \
--without-ftp \
--without-http \
--without-iconv \
--without-iso8859x \
--without-legacy \
--with-output \
--without-pattern \
--without-push \
--without-python \
--with-reader \
--without-readline \
--without-regexps \
--with-sax1 \
--with-schemas \
--with-threads \
--with-tree \
--with-valid \
--with-writer \
--with-xinclude \
--with-xpath \
--with-xptr \
--with-zlib \
--without-lzma
CMAKE_OPTIONS += \
-DBUILD_SHARED_LIBS=ON \
-DLIBXML2_WITH_C14N=ON \
-DLIBXML2_WITH_CATALOG=OFF \
-DLIBXML2_WITH_DEBUG=ON \
-DLIBXML2_WITH_FTP=OFF \
-DLIBXML2_WITH_HTML=ON \
-DLIBXML2_WITH_HTTP=OFF \
-DLIBXML2_WITH_ICONV=ON \
-DLIBXML2_WITH_ICU=OFF \
-DLIBXML2_WITH_ISO8859X=OFF \
-DLIBXML2_WITH_LEGACY=OFF \
-DLIBXML2_WITH_LZMA=OFF \
-DLIBXML2_WITH_MEM_DEBUG=OFF \
-DLIBXML2_WITH_MODULES=OFF \
-DLIBXML2_WITH_OUTPUT=ON \
-DLIBXML2_WITH_PATTERN=ON \
-DLIBXML2_WITH_PROGRAMS=ON \
-DLIBXML2_WITH_PUSH=ON \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_READER=ON \
-DLIBXML2_WITH_REGEXPS=ON \
-DLIBXML2_WITH_RUN_DEBUG=OFF \
-DLIBXML2_WITH_SAX1=ON \
-DLIBXML2_WITH_SCHEMAS=ON \
-DLIBXML2_WITH_SCHEMATRON=OFF \
-DLIBXML2_WITH_TESTS=OFF \
-DLIBXML2_WITH_THREADS=ON \
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
-DLIBXML2_WITH_TREE=ON \
-DLIBXML2_WITH_VALID=ON \
-DLIBXML2_WITH_WRITER=ON \
-DLIBXML2_WITH_XINCLUDE=ON \
-DLIBXML2_WITH_XPATH=ON \
-DLIBXML2_WITH_XPTR=ON \
-DLIBXML2_WITH_XPTR_LOCS=ON \
-DLIBXML2_WITH_ZLIB=ON \
-DHAVE_LIBHISTORY=OFF \
-DHAVE_LIBREADLINE=OFF
define Build/InstallDev
$(INSTALL_DIR) $(2)/bin
@ -141,14 +151,18 @@ define Build/InstallDev
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
$(LN) $(GNU_TARGET_NAME)-xml2-config $(2)/bin/xml2-config
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libxml2 $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.{la,a,so*} $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/cmake/libxml2
$(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2/libxml2-config.cmake \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2-$(PKG_VERSION)/*.cmake \
$(1)/usr/lib/cmake/libxml2
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig

View file

@ -0,0 +1,12 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -496,6 +496,9 @@ if(LIBXML2_WITH_PROGRAMS)
add_executable(LibXml2::${PROGRAM} ALIAS ${PROGRAM})
target_compile_definitions(${PROGRAM} PRIVATE SYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
target_link_libraries(${PROGRAM} LibXml2)
+ if(LIBXML2_WITH_ICONV AND NOT Iconv_IS_BUILT_IN)
+ target_link_libraries(${PROGRAM} iconv)
+ endif()
if(HAVE_LIBHISTORY)
target_link_libraries(${PROGRAM} history)
endif()