diff options
Diffstat (limited to 'vcpkg/ports/libidn2')
| -rw-r--r-- | vcpkg/ports/libidn2/disable-subdirs.patch | 21 | ||||
| -rw-r--r-- | vcpkg/ports/libidn2/fix-uwp.patch | 42 | ||||
| -rw-r--r-- | vcpkg/ports/libidn2/portfile.cmake | 72 | ||||
| -rw-r--r-- | vcpkg/ports/libidn2/vcpkg.json | 31 |
4 files changed, 166 insertions, 0 deletions
diff --git a/vcpkg/ports/libidn2/disable-subdirs.patch b/vcpkg/ports/libidn2/disable-subdirs.patch new file mode 100644 index 0000000..212b546 --- /dev/null +++ b/vcpkg/ports/libidn2/disable-subdirs.patch @@ -0,0 +1,21 @@ +diff --git a/Makefile.am b/Makefile.am +index 3c8179c..f37158c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -15,7 +15,7 @@ + + DISTCHECK_CONFIGURE_FLAGS ?= --enable-gtk-doc --enable-gtk-doc-pdf --disable-gcc-warnings + +-SUBDIRS = gl unistring lib src examples fuzz po ++SUBDIRS = gl unistring lib src po + ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I unistring/m4 + EXTRA_DIST = gl/m4/gnulib-cache.m4 + +@@ -23,7 +23,6 @@ if ENABLE_DOC + SUBDIRS += doc + endif + +-SUBDIRS += tests + + EXTRA_DIST += cfg.mk maint.mk CONTRIBUTING.md README.md + EXTRA_DIST += COPYING COPYING.LESSERv3 COPYING.unicode COPYINGv2 diff --git a/vcpkg/ports/libidn2/fix-uwp.patch b/vcpkg/ports/libidn2/fix-uwp.patch new file mode 100644 index 0000000..b9a79ec --- /dev/null +++ b/vcpkg/ports/libidn2/fix-uwp.patch @@ -0,0 +1,42 @@ +diff --git a/gl/fcntl.c b/gl/fcntl.c +index f9753c4..ae71a4a 100644 +--- a/gl/fcntl.c ++++ b/gl/fcntl.c +@@ -229,12 +229,17 @@ fcntl (int fd, int action, /* arg */...) + { + # if defined _WIN32 && ! defined __CYGWIN__ + HANDLE handle = (HANDLE) _get_osfhandle (fd); ++# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + DWORD flags; + if (handle == INVALID_HANDLE_VALUE + || GetHandleInformation (handle, &flags) == 0) + errno = EBADF; + else + result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; ++# else ++ if (handle == INVALID_HANDLE_VALUE) ++ errno = EBADF; ++# endif + # else /* !W32 */ + /* Use dup2 to reject invalid file descriptors. No way to + access this information, so punt. */ +diff --git a/gl/stat.c b/gl/stat.c +index adb6123..5afefb2 100644 +--- a/gl/stat.c ++++ b/gl/stat.c +@@ -194,6 +194,7 @@ rpl_stat (char const *name, struct stat *buf) + { + int ret; + ++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + { + /* Approach based on the file. */ + +@@ -219,6 +220,7 @@ rpl_stat (char const *name, struct stat *buf) + goto done; + } + } ++#endif + + /* Test for root and UNC root directories. */ + if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) diff --git a/vcpkg/ports/libidn2/portfile.cmake b/vcpkg/ports/libidn2/portfile.cmake new file mode 100644 index 0000000..a3291a3 --- /dev/null +++ b/vcpkg/ports/libidn2/portfile.cmake @@ -0,0 +1,72 @@ +set(IDN2_FILENAME "libidn2-${VERSION}.tar.gz") + +vcpkg_download_distfile(ARCHIVE + URLS "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" + "https://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" + FILENAME "${IDN2_FILENAME}" + SHA512 eab5702bc0baed45492f8dde43a4d2ea3560ad80645e5f9e0cfa8d3b57bccd7fd782d04638e000ba07924a5d9f85e760095b55189188c4017b94705bef9b4a66 +) + +vcpkg_extract_source_archive(SOURCE_PATH + ARCHIVE "${ARCHIVE}" + SOURCE_BASE "v${VERSION}" + PATCHES + disable-subdirs.patch + fix-uwp.patch +) + +vcpkg_list(SET options) +if("nls" IN_LIST FEATURES) + vcpkg_list(APPEND options "--enable-nls") +else() + vcpkg_list(APPEND options "--disable-nls") +endif() +set(ENV{AUTOPOINT} true) # true, the program + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_list(APPEND options "CPPFLAGS=\$CPPFLAGS -DIDN2_STATIC") +endif() + +set(ENV{GTKDOCIZE} true) +vcpkg_make_configure( + SOURCE_PATH "${SOURCE_PATH}" + AUTORECONF + COPY_SOURCE # include dir order problem + OPTIONS + ${options} + --disable-gtk-doc + --disable-doc + --disable-gcc-warnings + OPTIONS_RELEASE + "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}" + "--with-libunistring-prefix=${CURRENT_INSTALLED_DIR}" + OPTIONS_DEBUG + "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}/debug" + "--with-libunistring-prefix=${CURRENT_INSTALLED_DIR}/debug" + "CFLAGS=\$CFLAGS -I${CURRENT_INSTALLED_DIR}/include" +) + +vcpkg_make_install() +vcpkg_fixup_pkgconfig() +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/idn2.h" "defined IDN2_STATIC" "1") +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" +) + +vcpkg_install_copyright( + COMMENT [[ +The installed C library libidn2 is dual-licensed under LGPLv3+|GPLv2+, +while the rest of the package is GPLv3+. +]] + FILE_LIST + "${SOURCE_PATH}/COPYING" + "${SOURCE_PATH}/COPYING.LESSERv3" + "${SOURCE_PATH}/COPYINGv2" + "${SOURCE_PATH}/COPYING.unicode" +) diff --git a/vcpkg/ports/libidn2/vcpkg.json b/vcpkg/ports/libidn2/vcpkg.json new file mode 100644 index 0000000..ddceced --- /dev/null +++ b/vcpkg/ports/libidn2/vcpkg.json @@ -0,0 +1,31 @@ +{ + "name": "libidn2", + "version": "2.3.7", + "port-version": 3, + "description": "GNU Libidn is an implementation of the Stringprep, Punycode and IDNA 2003 specifications. Libidn's purpose is to encode and decode internationalized domain names.", + "homepage": "https://www.gnu.org/software/libidn/", + "license": null, + "dependencies": [ + "libiconv", + "libunistring", + { + "name": "vcpkg-make", + "host": true + } + ], + "features": { + "nls": { + "description": "Enable native language support", + "dependencies": [ + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ] + }, + "gettext-libintl" + ] + } + } +} |