libxml2: build with cmake
authorRosen Penev <redacted>
Sun, 6 Nov 2022 00:02:54 +0000 (17:02 -0700)
committerRosen Penev <redacted>
Sat, 14 Jan 2023 05:06:26 +0000 (21:06 -0800)
Signed-off-by: Rosen Penev <redacted>
libs/libxml2/Makefile
libs/libxml2/patches/010-iconv.patch [new file with mode: 0644]

index 76f930529ec46de455c7207fc0bc638b5c44df24..a726e78cca7598f31862d1a00029db6a8b7a831d 100644 (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)
-
-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_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
+
+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
diff --git a/libs/libxml2/patches/010-iconv.patch b/libs/libxml2/patches/010-iconv.patch
new file mode 100644 (file)
index 0000000..e35b7ce
--- /dev/null
@@ -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()
git clone https://git.99rst.org/PROJECT