aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libidn2
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libidn2')
-rw-r--r--vcpkg/ports/libidn2/disable-subdirs.patch21
-rw-r--r--vcpkg/ports/libidn2/fix-uwp.patch42
-rw-r--r--vcpkg/ports/libidn2/portfile.cmake72
-rw-r--r--vcpkg/ports/libidn2/vcpkg.json31
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"
+ ]
+ }
+ }
+}